Hibernate离线查询对象


creteria的创建是依赖session的,使用session.createCriteria来创建。

查询条件一般是由web页面传递过来的,查询条件由web层传给service层,再传递给dao层,组装查询条件到Criteria执行查询,这样执行的话,前端的每一种查询都需要有对应的dao查询。

离线的Criteria创建的时候是脱离session创建的,这样可以在web层去组装查询条件,可以在web层创建criteria,然后将Criteria传递给Service层和dao层。这样设计的好处是dao方法不用有多个。

在web层组装DetachedCriteria,拼装条件与普通Criteria一致

DetachedCriteria dc=DetachedCriteria.forClass(Customer.class);
dc.add(Restrictions.idEq(6l));

 

传递到dao层之后

 1         Session session = HibernateUtils.openSession();
 2         Transaction tx = session.beginTransaction();
 3         //----------------------------------------------------
 4         Criteria c = dc.getExecutableCriteria(session);
 5         
 6         List list = c.list();
 7         
 8         System.out.println(list);
 9         //----------------------------------------------------
10         tx.commit();
11         session.close();        

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM