欢迎访问:我的个人网站
#通过Hibernate查询信息
Hibernate提供了多种的查询方式来进行数据的获取。可以通过对象OID查询、导航查询、HQL语句查询,QBC查询,下面各自对这三种方式的查询步骤做出一个简单的汇总
下面的查询使用到了一些实体以及数据,数据实体包括**代表消费者的实体Customer、代表收货地址的实力Address。**二者为1对多的映射关系,下面是他们各自的值:
下面的例子将以上面的两个实体进行举例,为了节约篇幅,下面的代码片段都只写主要的,遵循下面的格式:
@Test
public void test(){
SessionFactory sessionFactory = null;
Session session = null;
Transaction transaction = null;
try {
sessionFactory = HibernateUtils.getSessionFactory();
session = sessionFactory.getCurrentSession();
transaction = sessnTransaction();
//举例所用代码片段
......
transaction.commit();
}catch (Exception e){
transaction.rollback();
}finally {
sessionFactory.close();
}
}
##1、OID查询
就是之前所说到的通过get() / load()方法获取一个实体对象的方式,比较简单。
//在Customer实体所映射的表里面获取 id=1 的信息, 立即到对数据库进行查询。
Customer customer1 = (Customer) session.get(Customer.class, 1);
//在Customer实体所映射的表里面获取 id=2 的信息, 只有在下文使用到customer2非id的信息时候采取进行加载
Customer customer2 = (Customer) session.load(Customer.class, 2);
//上面两个方法的细节可以了解 Hibernate的延时加载机制,但都可以获取对象
##2、对象导航查询
是在使用IOD获取到实体的基础上,再通过该实体获取其对应的N端集合或1端的实体对象。就本例而言,可以在获