1. /**
    2. * 根据id查询用户
    3. * 使用find方法查询:
    4. * 1.查询的对象就是当前客户对象本身
    5. * 2.在调用find方法的时候,就会发送sql语句查询数据库
    6. *
    7. * 立即加载
    8. */
    9. @Test
    10. public void testFind(){
    11. //1.通过工具类获取entityManager
    12. EntityManager entityManager = JpaUtils.getEntityManager();
    13. //2.开启事务
    14. EntityTransaction transaction = entityManager.getTransaction();
    15. transaction.begin();
    16. //3.增删改查 -- 根据id查询用户
    17. /**
    18. * find:根据id查询数据
    19. * class:查询数据的结果需要包装的实体类类型的字节码
    20. * id:查询的主键的取值
    21. */
    22. Customer customer = entityManager.find(Customer.class, 1l);
    23. System.out.println(customer);
    24. //4.提交事务
    25. transaction.commit();
    26. //5.释放资源
    27. entityManager.close();
    28. }
    1. /**
    2. * 根据id查询客户
    3. * getReference方法
    4. * 1.获取的对象是一个动态代理对象
    5. * 2.调用getReference方法不会立即发送sql语句查询数据库
    6. * * 当调用查询结果对象的时候,才会发送查询的sql语句:什么时候用,什么时候发送sql语句查询数据库
    7. * 延迟加载(懒加载 )
    8. * * 得到的是一个动态代理对象
    9. * * 什么时候用,什么时候才会查询
    10. */
    11. @Test
    12. public void testReference(){
    13. //1.通过工具类获取entityManager
    14. EntityManager entityManager = JpaUtils.getEntityManager();
    15. //2.开启事务
    16. EntityTransaction transaction = entityManager.getTransaction();
    17. transaction.begin();
    18. //3.增删改查 -- 根据id查询用户
    19. /**
    20. * getReference:根据id查询数据
    21. * class:查询数据的结果需要包装的实体类类型的字节码
    22. * id:查询的主键的取值
    23. */
    24. Customer customer = entityManager.getReference(Customer.class, 1l);
    25. System.out.println(customer);
    26. //4.提交事务
    27. transaction.commit();
    28. //5.释放资源
    29. entityManager.close();
    30. }