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

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

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

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

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较_第1张图片
这里是可以使用specification实现单表的动态条件,拼接,很是方便
JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较_第2张图片
只是比上面那个,少了动态条件的拼接,所以,一般使用上面那个

二、引入公共Repo

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

  • 要注意的地方
  • 注解,还有泛型的问题(都容易导致启动报错,关于repo的)
  • 还有model主键的问题,因为我规范了,所有的model主键类型为Long,才会这么用

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

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

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

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

JPA集成QueryDsl,以及自定义存储库注意事项,和使用中的区别比较_第5张图片
这样引入更方便,其实我之前也遇到过关于自定义存储库(继承方式的引入)启动报错,关于命名的问题,反正要小心为是。

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

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

关于 @NoRepositoryBean

确保添加了该注解的 repository 接口不会在运行时被创建实例。

也就是说,使用了该注解的接口不会被单独创建实例,只会作为其他接口的父接口而被使用。

你可能感兴趣的:(SpringData,JPA,JPA,repository)