当你百度搜”是使用JPA好还是Mybatis好“会出现两极分化文章,这让我对JPA有些好奇了,因此写下此博客用来记录我所知道的JPA和Mybatis
JPA:
什么是JPA:全称Java Persistence API(Java持久化API),JPI提供了ORM的元数据,JPA的API和JPQL等查询语言,但JPA本质上是一种规范,它仅定义了接口,具体功能需要用户自己去实现,最后才能运用到实际项目中
Hibernate:
他是一个实现JPA接口功能的框架,优点:松散耦合优势ORM工具的绝佳选择,移植性好(但一般项目迁移数据库的概率还是很低的)
Spring data JPA
它是Spring Framework的一部分,pring Data存储库抽象的目标是显著减少为各种持久性存储实现数据访问层所需的代码量。Spring Data JPA不是JPA提供者。它是一个库/框架,它在我们的JPA提供程序(如Hibernate)的顶部添加了一个额外的抽象层
转自https://m.imooc.com/article/292795
缺点:sql优化困难,实现复杂的需求困难(门槛高),不懂DDD的话,就会沦为增删改查了。 复杂的查询应该是通过CQRS模式,通过异步队列建立合适查询的视图,通过视图避免复杂的Join,而不是直接查询领域模型。 从目前的趋势来看OLAP交给NoSQL数据库可能更合适