天天看点

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较

关于数据库层框架,主要是Mybatis和JPA(主要是Springdata JPA),这里简单记录下自己使用过程中的小问题

这里就不介绍,关于Jar的引入,Model和表的映射处理,以及主键,是否外键的选择了

一、常见的继承关系和使用区别

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较

这里是可以使用specification实现单表的动态条件,拼接,很是方便

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较

只是比上面那个,少了动态条件的拼接,所以,一般使用上面那个

二、引入公共Repo

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较
  • 要注意的地方
  • 注解,还有泛型的问题(都容易导致启动报错,关于repo的)
  • 还有model主键的问题,因为我规范了,所有的model主键类型为Long,才会这么用

三、也可以自定义存储库,两种方式引入

第一种,不继承,当要使用时,使用@resource 注入即可

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较

第二种,继承方式引入,这样注入更方便,只需注入一个Repo,比较简洁

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较

这样引入更方便,其实我之前也遇到过关于自定义存储库(继承方式的引入)启动报错,关于命名的问题,反正要小心为是。

最后,把各个Repo的关系图发出来,可能会清晰些

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较

关于 @NoRepositoryBean