UserDao.java
public interface UserDao extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
}
@Test
public void testFindById() {
User user = userDao.getOne(4l);
System.out.println(user);
}
内部流程:
1、通过JSKDynamicAopProxy的invoke()方法创建了一个动态代理对象;
2、动态代理对象:simpleJpaRepository,其封装了JPA的操作(借助JPA的api完成数据库的CRUD);
3、getOne():通过entityManager完成查询操作;
4、通过hibernate完成数据库操作(封装了jdbc)。