zoukankan      html  css  js  c++  java
  • Hibernate学习(四)get和Load比较

     1 package cn.lonecloud.test.crud;
     2 
     3 import org.hibernate.HibernateException;
     4 import org.hibernate.Session;
     5 import org.hibernate.SessionFactory;
     6 import org.hibernate.Transaction;
     7 import org.hibernate.cfg.Configuration;
     8 import org.junit.Before;
     9 import org.junit.Test;
    10 
    11 import cn.lonecloud.domain.Customer;
    12 
    13 public class GetAndLoad {
    14 
    15     private Session session;
    16 
    17     private SessionFactory buildSessionFactory;
    18 
    19     public SessionFactory getBuildSessionFactory() {
    20         return buildSessionFactory;
    21     }
    22 
    23     public void setBuildSessionFactory(SessionFactory buildSessionFactory) {
    24         this.buildSessionFactory = buildSessionFactory;
    25     }
    26 
    27     public void setSession(Session session) {
    28         this.session = session;
    29     }
    30 
    31     @Before
    32     public void getSession() {
    33         Configuration cfg = new Configuration().configure();
    34         setBuildSessionFactory(cfg.buildSessionFactory());
    35         session= buildSessionFactory.openSession();
    36     }
    37     @Test
    38     public void getTest(){
    39         Transaction transaction = null;
    40         try {
    41             transaction = session.beginTransaction();//创建session
    42             //get默认为非懒加载模式进行的不管设置设置懒加载
    43             //get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;
    44             //反而load方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库。
    45             Customer customer = (Customer) session.get(Customer.class, "2c90ab8157cda51a0157cda51b330000");
    46             System.out.println(customer.getId());
    47             customer.getOrders();
    48             transaction.commit();//提交事务
    49         } catch (HibernateException e) {
    50             if (transaction!=null) {
    51                 transaction.rollback();//事务回滚
    52             }
    53             e.printStackTrace();
    54         }finally{
    55             if (session!=null&&session.isOpen()) {
    56                 session.close();//关闭session
    57             }
    58         }
    59     }
    60     @Test
    61     public void loadTest(){
    62         Transaction transaction = null;
    63         try {
    64             transaction = session.beginTransaction();//创建session
    65             //get默认为非懒加载模式进行的不管设置设置懒加载
    66             //get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;
    67             //反而load方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库。
    68             Customer customer = (Customer) session.load(Customer.class, "2c90ab8157cda51a0157cda51b330000");
    69             System.out.println(customer.getId());
    70             customer.getOrders();
    71             transaction.commit();//提交事务
    72         } catch (HibernateException e) {
    73             if (transaction!=null) {
    74                 transaction.rollback();//事务回滚
    75             }
    76             e.printStackTrace();
    77         }finally{
    78             if (session!=null&&session.isOpen()) {
    79                 session.close();//关闭session
    80             }
    81         }
    82     }
    83 }

    //get默认为非懒加载模式进行的不管设置设置懒加载

    //get方法首先查询session缓存,没有的话查询二级缓存,最后查询数据库;

    //反而load方法创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库。

    具体:

    http://blog.csdn.net/javaloveiphone/article/details/8184941

  • 相关阅读:
    python模块—socket
    mac os系统的快捷键
    教你如何将UIImageView视图中的图片变成圆角
    关于ASP.NET MVC
    iOS 日期格式的转换
    将App通过XCode上传到AppStore 出现这个错误“An error occurred uploading to the iTunes Store”的解决方法
    关于MAC OS下面两个软件的功能改进——Dictionary和Fit 输入法
    分享一下上个星期的香港行程
    【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
    解决Entity Framework Code First 的问题——Model compatibility cannot be checked because the database does not contain model metadata
  • 原文地址:https://www.cnblogs.com/lonecloud/p/5967882.html
Copyright © 2011-2022 走看看