Hibernate 检索策略
Posted Kikyo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate 检索策略相关的知识,希望对你有一定的参考价值。
HibernateDemo2
public class HibernateDemo2 { //演示批量抓取 @Test public void testSelect3() { SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try { sessionFactory = HibernateUtils.getSessionFactory(); session = sessionFactory.openSession(); tx = session.beginTransaction(); //查询所有客户 Criteria criteria = session.createCriteria(Customer.class); List<Customer> list = criteria.list(); //得到每个客户里面所有的联系人 for (Customer customer : list) { System.out.println(customer.getCid() + "::" + customer.getCustName()); //每个客户里面所有的联系人 Set<LinkMan> setLinkMan = customer.getSetLinkMan(); for (LinkMan linkMan : setLinkMan) { System.out.println(linkMan.getLkm_id() + "::" + linkMan.getLkm_name()); } } tx.commit(); } catch (Exception e) { tx.rollback(); } finally { session.close(); sessionFactory.close(); } } //演示检索策略 @Test public void testSelect2() { SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try { sessionFactory = HibernateUtils.getSessionFactory(); session = sessionFactory.openSession(); tx = session.beginTransaction(); //根据cid=1客户 //执行get方法之后,是否发送sql语句 //调用get方法马上发送sql语句查询数据库 // Customer customer = session.get(Customer.class, 1); // // System.out.println(customer.getCid()); /* * 1 调用load方法之后,不会马上发送sql语句 * (1)返回对象里面只有 id值 * * 2 得到对象里面不是id的其他值时候才会发送语句 * */ Customer customer = session.load(Customer.class, 2); System.out.println(customer.getCid()); System.out.println(customer.getCustName()); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { session.close(); sessionFactory.close(); } } //演示对象导航查询 @Test public void testSelect1() { SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try { sessionFactory = HibernateUtils.getSessionFactory(); session = sessionFactory.openSession(); tx = session.beginTransaction(); //根据cid=1客户,再查询这个客户里面所有联系人 Customer customer = session.get(Customer.class, 1); //再查询这个客户里面所有联系人 //直接得到客户里面联系人的set集合 //得到set集合,没有发送语句 Set<LinkMan> linkman = customer.getSetLinkMan(); // 发送语句 System.out.println(linkman.size()); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { session.close(); sessionFactory.close(); } } }
以上是关于Hibernate 检索策略的主要内容,如果未能解决你的问题,请参考以下文章