JPA持久化层规范,而hibernate实现了这种规范,ssm的话先配置jpa单元
dataSource,hibernate配置,dialect的sql语句方言,扫描实体类包
然后测试方法需要加载一下appliactionContext文件
Test方法运行,一个EntityManageFactory生成EntityManager,开启事务,方法操作数据库
可以用jpql语言
SpringDataJpa是SPringData的一个模块,而SpringData又是Spring的一个组件。
配置与上面差不多,最后需要把entityManagement配置进SpingDataJPA的组件中,再配置一下事务。
其中JPADao层要继承两个接口
正在研究,内部应该是hibernate和jpa动态代理实现了一个类,然后通过和spring整合扩展了bean
SpringDataJPA通过扫描dao包,实现对DAO层的动态代理
然后再点进simpleDataJPA类:
发现烦findOne方法返回了this.em.find
而em变量在这里:
好家伙,就是封装了entitymanager
JPA策略