Hibernate 和 Spring Data JPA 之间的主要区别是什么?我们什么时候不应该使用 Hibernate 或 Spring Data JPA?此外,Spring JDBC 模板何时可以比 Hibernate / Spring Data JPA 执行得更好?
Hibernate 是一个 JPA 实现,而 Spring Data JPA 是一个 JPA 数据访问抽象。如果没有 JPA 提供程序,Spring Data JPA 将无法工作。
Spring Data 为DDDRepository模式或遗留的自定义实现提供了解决方案GenericDao。它还可以通过方法名称约定代表您生成 JPA 查询。
Repository
GenericDao
使用 Spring Data,您可以使用 Hibernate、EclipseLink 或任何其他 JPA 提供程序。使用 Spring 或 Java EE 的一个非常有趣的好处是您可以使用@Transactional注解以声明方式控制事务边界。
@Transactional
Spring JDBC 更轻量级,它用于原生查询,如果你只打算单独使用 JDBC,那么你最好使用 Spring JDBC 来处理 JDBC 冗长的问题。
因此,Hibernate 和 Spring Data 是互补的,而不是竞争对手。