vvs*_*vvs 2 java spring hibernate spring-data-jpa spring-boot
实际上,我是Spring Boot的新手,但我已经使用了Spring一段时间了.使用spring,我曾经通过带有hibernate/JPA的通用DAO处理我的数据库(MySQL).但是我在spring Boot上找到的所有教程都使用了spring数据jpa,因此配置更容易.
因此,我想知道继续使用我的旧通用DAO是否是一个好主意,因为它允许我完全控制并根据需要自定义我的数据访问.如果是,我该怎么办?如果没有,可能有哪些缺点?
DAO模式与Spring Data支持的存储库模式相同.至少,它应该是.每个实体都有一个DAO(= Repository)类,它提供查询或操作该实体的方法.
是否继续使用我的旧通用DAO是一个好主意,因为它允许我拥有完全控制并根据需要自定义我的数据访问.
Spring Data足够灵活,可以完全控制您的查询.您有以下选项(从Spring Data引用复制的代码示例):
使用方法名称:您可以简单地命名这样的存储库方法,让Spring Data自动为您生成查询:
List<User> findByEmailAddressAndLastname(String emailAddress, String lastname);
Run Code Online (Sandbox Code Playgroud)使用每个注释的自定义查询:在@Query注释中提供自定义JPAQL查询
@Query("select u from User u where u.emailAddress = ?1")
User findByEmailAddress(String emailAddress);
Run Code Online (Sandbox Code Playgroud)使用命名查询:在xml文件中定义命名的JPAQL查询,并在@Query注释中引用它
<named-query name="User.findByLastname">
<query>select u from User u where u.lastname = ?1</query>
</named-query>
@Query(name="User.findbyLastname")
List<User> findByLastname(String lastname);
Run Code Online (Sandbox Code Playgroud)自己实现一个存储库方法:通过自己访问Hibernate会话(或另一个JPA提供程序)来自己提供Spring Data存储库的部分实现.
所以,回答你的问题:是的,使用Spring Data JPA,尤其是新项目!它为您做了很多工作,您仍然可以根据需要控制查询(这应该只是复杂查询所必需的,甚至是我建议使用程序化规范的那些).
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |