Hibernate_get和load的区别

来源:互联网 发布:嵌入式linux开机动画 编辑:程序博客网 时间:2024/05/20 12:22

1.get和load的区别

 *  get不支持lazy ,load支持lazy

 * 采用get加载数据如果没有匹配的数据返回null而load则抛出异

    /** * 采用get如果数据库没有就返回null */public static void testReadByGetMethod02() {Session session = null;try {//session = HibernateSessionFactory.getSession();session.beginTransaction();Users user = (Users) session.get(Users.class,"402881123dba6017013dba6019490001");session.getTransaction().commit();} catch (Exception e) {e.printStackTrace();session.getTransaction().rollback();} finally {HibernateSessionFactory.closeSession();}}/** * 采用load,延迟加载只有真正用到这个对象的时候才加载(执行sql) */public static void testReadByLoadMethod01() {Session session = null;try {session = HibernateSessionFactory.getSession();session.beginTransaction();//这个时候不执行sqlUsers user = (Users) session.load(Users.class,"402881123dba6017013dba6019490001");//这个时候执行sqlSystem.out.println("user_name:"+user.getUserName());session.getTransaction().commit();} catch (Exception e) {e.printStackTrace();} finally {HibernateSessionFactory.closeSession();}}/** * 采用Load加载数据如果数据库中没有响应的数据,那么抛出异常 */public static void testReadByLoadMethod02() {Session session = null;try {session = HibernateSessionFactory.getSession();session.beginTransaction();            Users user=(Users)session.load(Users.class,"aaaaa");session.getTransaction().commit();} catch (Exception e) {e.printStackTrace();} finally {HibernateSessionFactory.closeSession();}}