gpt4 book ai didi

java - 使用 Spring Data 创建只读存储库

转载 作者:IT老高 更新时间:2023-10-28 13:47:17 25 4
gpt4 key购买 nike

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

我有一些实体链接到 View 和一些子实体,我想为它们提供一个存储库,其中包含一些方法,如 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();
}

您现在可以让具体的 repos 扩展刚刚定义的一个:

public interface PersonRepository extends ReadOnlyRepository<Person, Long> {

T findByEmailAddress(String emailAddress);
}

定义基础 repo 的关键部分是方法声明带有与 CrudRepository 中声明的方法非常相同的签名,如果在这种情况下我们仍然可以路由调用进入支持存储库代理的实现 bean。我写过更详细的blog post在 SpringSource 博客中了解该主题。

关于java - 使用 Spring Data 创建只读存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11107136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com