2

我不知道如何在没有查询的情况下在 Hibernate 中执行 SELECT * FROM。即我可以这样做:

Session session = ...;
JavaBean jb = ...;
...
session.save(jb); // I'm adding jb
session.update(jb); // I'm updating jb
session.delete(jb); // I'm deleting jb

但我不知道如何从会话中选择。我知道的唯一方法是

list = session.createQuery("from JavaBean").list();
4

3 回答 3

3

要获取 JavaBean 的所有实例,请使用 Hibernate Criteria API:

Criteria criteria = session.createCriteria(JavaBean.class);
List javaBeans = criteria.list();
于 2013-02-15T11:40:57.023 回答
2
Criteria crit=session.createCriteria(Class object of a pojo class)
EX:
Criteria crit=session.createCriteria(Employee.class)
List list=crit.list();

如果执行上述条件,则它会从数据库加载所有员工,即 Employee pojo 类的所有对象

在内部,hibernate 将 Employee 的每一行存储在一个对象 Employee 类中,所有 Employee 类对象存储在一个列表中,最后 hibernate 将该列表对象返回给我们的 java 应用程序

在迭代集合(列表)时,我们需要将每个对象类型转换为 pojo 类类型。

 Iterator it=list.iterator();
while(it.hasNext())
 {
  Employee e=(Employee)it.next();
 ..............
 ..............

 }
于 2013-03-22T05:32:10.320 回答
1

我的问题的答案是:

List selectAll(Class clazz) {
    return session.createCriteria(clazz).list();
}

看更多:http ://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html

感谢 overmeulen

于 2013-02-15T11:39:11.537 回答