一、应用场合:
传统公司、部分个人开发者喜欢用jpa;而互联网公司更青睐于mybatis
原因:
1、mybatis更加灵活,开发迭代模式决定了他是互联网公司的首先;每一次的修改不会带来性能上的下降。
2、传统公司需求迭代速度慢、项目改动小,hibernate可以做到一劳永逸;hibernate容易因为添加关联关系或者开发者不了解优化导致项目,造成越改越糟糕。
二、各自特点:
1、mybatis官方文档就说了他是一个半自动化的持久层框架,相对于按自动的hibernate更加灵活可控;
2、mybatis的学习成本低于hibernate。
3、使用hibernate需要对他有深入的了解,尤其是缓存方面,作为一个持久层框架,性能还是第一位的。
hibernate具有三级缓存,一级缓存默认是开启的,二级缓存需要手动开始并配置优化,三级缓存可以整合业界流行的缓存技术:redis,ecache等等。
4、hibernate在关联查询中的懒加载。(在开发中,还是不建议去过多使用外键去关联操作)
5、jpa是一种规范,hibernate也是遵从这种规范;
6、springDataJpa是对repository的封装,简化了repository的操作。