SpringBoot项目如何使用自定义Repository

        在公司实习的时候,遇到这样一个问题,就是当往数据库添加记录的时候,需要先去查看数据库中的记录数是否超过了最大限制,如果没有超过则进行添加;否则就需要删除先前的记录从而保证数据库中的记录数。这样的话,当调用dao层的save方法时,如果只是使用jpa提供的save方法,显然是达不到要求的。所以我通过翻找项目代码以及翻阅博客,对如果使用自定义的Repository有了一定的认识。

        1. 当创建一个UserRepository接口继承JpaRepository后,调用对应的save方法时,jpa会自动创建这个接口的实现类,并调用SimpleJpaRepository里面的save方法。

       2. 如果想要使用自己执行save方法的逻辑,则需要一个自定义类去继承SimpleJpaRepository并重写save方法,这个自定义类也就是我们自定义的Repository。

     3. 在 CustomerBaseRepository 类中重写 SimpleJpaRepository 中的 save 方法。 

    4. 在springboot的启动类中添加 需要扫描的 jpa中的 repository 路径 以及指定自定义的 repository类。这样的话,spring框架就会自动扫描到 CustomerBaseRepository 类并用它替代 

SimpleJpaRepository 执行其他添加 @Repository 注解的接口 的 save方法。

    注意:CustomerBaseRepository 不需要添加 @Repository 注解,因为指定好了spring容器就可以扫描到这个类。如果添加 @Repository 类会导致找不到 SimpleJpaRepository 构造方法中的 JpaEntityInformation 和 EntityManager ,从而使得spring容器启动失败。

     5. 调用 UserRepository. save方法,会自动进入到 CustomerBaseRepository 中重写的 save 方法,这样就完成了 自定义 Repository 的使用,也符合 调用 save 方法需要执行的业务逻辑了。

以上就是我对springboot项目中如果使用自定义的 Repository 的理解了,如有不足请批评指正。

相关推荐

  1. Spring Data的Repositories----定义存储库实现

    2024-07-13 14:06:04       36 阅读
  2. 如何定义SpringBoot的白标错误页面?

    2024-07-13 14:06:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 14:06:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 14:06:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 14:06:04       57 阅读
  4. Python语言-面向对象

    2024-07-13 14:06:04       68 阅读

热门阅读

  1. qt 开发一个可以拖动的矩形

    2024-07-13 14:06:04       20 阅读
  2. springboot项目,指定某些接口不被拦截方法

    2024-07-13 14:06:04       14 阅读
  3. 无人机的工作原理

    2024-07-13 14:06:04       14 阅读
  4. js实现一键任意html元素生成截图功能

    2024-07-13 14:06:04       19 阅读
  5. 一、字符串/数组

    2024-07-13 14:06:04       20 阅读
  6. 2024年城市客运安全员考试题库及答案

    2024-07-13 14:06:04       17 阅读
  7. SwiftBrush算法与代码解读

    2024-07-13 14:06:04       20 阅读
  8. 005-基于Sklearn的机器学习入门:逻辑回归

    2024-07-13 14:06:04       28 阅读
  9. opencv—常用函数学习_“干货“_总

    2024-07-13 14:06:04       22 阅读