当前位置: 首页 > 面试题库 >

使用SpringData创建只读存储库

程祯
2023-03-14
问题内容

是否可以使用Spring Data创建只读存储库?

我有一些链接到视图的实体,还有一些子实体,我想为其提供一个存储库,其中包含的某些方法findAll()findOne()以及带有@Query批注的某些方法。我想避免提供像save(…)和这样的方法,delete(…)因为它们没有意义,并且可能会产生错误。

public interface ContactRepository extends JpaRepository<ContactModel, Integer>, JpaSpecificationExecutor<ContactModel> {
    List<ContactModel> findContactByAddress_CityModel_Id(Integer cityId);

    List<ContactModel> findContactByAddress_CityModel_Region_Id(Integer regionId);

    // ... methods using @Query

    // no need to save/flush/delete
}

谢谢!


问题答案:

是的,方法是添加手工制作的基础存储库。您通常使用以下内容:

public interface ReadOnlyRepository<T, ID extends Serializable> extends Repository<T, ID> {

  T findOne(ID id);

  Iterable<T> findAll();
}

现在,您可以使刚刚定义的具体回购扩展:

public interface PersonRepository extends ReadOnlyRepository<Person, Long> {

  T findByEmailAddress(String emailAddress);
}

定义基本存储库的关键部分是,方法声明 声明的方法 具有相同的签名
,在CrudRepository这种情况下,我们仍然可以将调用路由到支持存储库代理的实现Bean中。我在SpringSource博客中写了一篇关于该主题的更详细的博客文章。



 类似资料:
  • 我对SpringData和JPA有问题。当我向HomeRepository接口添加方法时,我得到一个错误。我使用的是JPararePository接口,在pom.xml文件中有一个MySQL数据库集。这些只是我对spring的开始,所以我需要一些了解spring的人的帮助。下面是我的代码和日志: 主页库: 用户存储库: 日志:

  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com

  • 问题内容: 据我了解,密钥库通常会保存私钥/公钥,而信任库通常只保存公钥(并代表你打算与之通信的受信任方的列表)。好吧,这是我的第一个假设,因此,如果这不正确,那么我可能起步并不顺利。 不过,我很想了解使用keytool时如何/何时区分商店。 因此,到目前为止,我已经使用 这将创建我的keystore.ks文件。我回答yes了我是否信任bob的问题,但是我不清楚这是否创建了密钥库文件或信任库文件?

  • 我正在尝试使用文本文件的内容在MySQL数据库中创建存储过程: 我使用本机查询执行SQL: 但是它在DROP PROCEDURE上得到一个错误我注释了DROP PROCEDURE,然后它在DELIMITER上得到一个错误基本上,它在第一个分号之后的任何一行上都得到一个错误。 似乎JPA hibernate正在解析我的查询并告诉我它有问题,而不是将纯文本传递到MySQL。 sql在MySQL中运行,

  • 我正在尝试使用脚本从部署在谷歌云中的Hadoop集群访问谷歌存储桶。如果bucket访问是只读的,则会失败。 我在做什么: > 使用 在主机上: 看看GCS Java源代码,Google Cloud Storage Connector for Hadoop似乎需要空的“目录”对象,如果bucket是可写的,它可以自己创建这些对象;否则它就失败了。设置导致“检索对象时出错”错误。 是否可以以某种方式

  • 问题内容: 我正在从PHP中读取一个TEXT文件,并试图从中执行命令,例如创建一个DB及其具有的所有表和过程。我的代码创建表,但不创建文件中给定的存储过程。 PDO没有创建SP,那么将如何完成此任务?我尝试一起执行所有代码部分并逐行执行,但没有任何效果。 我正在尝试制作数据库安装程序脚本。 问题答案: 好吧,PMA帮助我回答了我自己的问题。 为了克服这个问题,您需要删除过程的定界符部分,以便查询变