Hibernate,主键搜索从表中返回所有内容

时间:2012-07-31 13:15:08

标签: java hibernate postgresql

我对Hibernate有这个问题,当我尝试使用条件检索唯一结果时,hibernate会返回表中的所有内容。

Session session = HibernateUtil.beginTransaction();
Customer c = new Customer();
c.setCustId(custId);
Example ex = Example.create(c);
Criteria criteria = HibernateUtil.getSession().createCriteria(Customer.class);
criteria.add(ex);

Customer customer = (Customer)criteria.uniqueResult();

HibernateUtil.commitTransaction();
HibernateUtil.closeSession();

但是用表格查询表格:

Customer customer = (Customer)session
                    .createSQLQuery("select * from customer_ where custid = :id")
                    .addEntity(Customer.class)
                    .setInteger("id", custId)
                    .uniqueResult();

返回正确的条目。 custId是表的主键。 Customer类包含2个@OneToMany映射。

我是否需要在上面的标准示例中添加内容?

1 个答案:

答案 0 :(得分:2)

The documentation说:

  

版本属性,标识符和关联将被忽略。

(强调我的)

如果您有标识符,为什么不简单地使用Session.get()