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提供了DDD Repository模式或旧式GenericDao自定义实现的解决方案。它还可以通过方法名称约定代表您生成JPA查询。
Repository
GenericDao
使用Spring Data,您可以使用Hibernate,Eclipse Link或任何其他JPA提供程序。使用Spring或Java EE的一个非常有趣的好处是,您可以使用@Transactional注释以声明方式控制事务边界。
@Transactional
Spring JDBC更轻巧,它用于本机查询,如果仅打算单独使用JDBC,那么最好使用Spring JDBC处理JDBC详细信息。
因此,Hibernate和Spring Data是互补的,而不是竞争对手。