2012-07-31 81 views
1

我有這個問題與休眠,當我嘗試檢索使用標準的獨特結果休眠從表返回所有的內容。休眠,通過主鍵搜索返回所有從表

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映射。

我是否需要在上述標準示例中添加內容?

回答

2

The documentation說:

版本屬性,標識符和關聯被忽略。

(重點煤礦)

爲什麼不直接使用Session.get()如果你有標識?

+0

感謝您的回覆。我沒有意識到我可以使用session.get()。我只是在做一個例子。那麼標識符==主鍵?和關聯==註釋字段?奇怪的是,我不能使用它們與條件搜索?對不起,愚蠢的問題,我第一次使用休眠。 – SneakyMummin 2012-07-31 13:48:26

+0

BTW。 session.get()工作正常。謝謝 – SneakyMummin 2012-07-31 13:51:46

+0

關聯= OneToOne,OneToMany,ManyToOne和ManyToMany。與另一個實體的關聯。 – 2012-07-31 13:52:47