Spring Data JPA和QueryDSL
我是Spring数据JPA的新手,正在尝试了解如何最好地将其与QueryDSL结合使用。没有QueryDSL,我将可以在SpringData接口中使用@Query注释简单地创建任何查询。
为了获得与使用QueryDSL相同的经验,从我可以看到的角度来看,我需要创建自己的自定义存储库实现,并使我的repo接口扩展我的自定义实现接口,或者将我的所有QueryDSL查询放在包装我的repo的服务层。
在第一种情况下,我无法在自定义存储库中使用任何SD自动生成的方法(例如:findAll(QueryDSL谓词)),因为我无法访问实际的存储库对象,而在第二种情况下,将查询逻辑放在服务层而不是存储库层。
两种解决方案听起来对我来说都没有特别的吸引力。有第三种方法更合适吗?还是我误会了如何正确使用QueryDSL和Spring Data?
谢谢!
埃里克
回答:
可能最方便的办法就是让你的资料库界面简单地延长QueryDslPredicateExecutor
其增加的能力,只是管Querydsl
Predicate
对象到库中并执行独立或一起Pageable
和Sort
等。
如果您真的想将谓词的组合隐藏到存储库层中(这很好,但实际上具有不同的用途),则可以按此处所述创建一个单独的存储库实现类,并将其QueryDslRepositorySupport
用作基类。在你实现查找方法,然后你可以只使用from(…)
,update(…)
和delete(…)
基类的方法来轻松构建和执行使用Querydsl元模型的查询。
以上是 Spring Data JPA和QueryDSL 的全部内容, 来源链接: utcz.com/qa/411497.html