2009-07-07 22 views
0

我有一個域對象說,SalesOrder有一個名爲id的複合id,由salesOrder id和repid組成,它包含在另一個名爲SalesOrderID的類中(它是可序列化的,實現equals和hashCode)Hibernate Basic:如何查詢何時出現複合ID

我的問題是,當我想查詢SalesOrder, 執行Session.createSQLQuery( 「從SalesOrder其中id =:soID」)

和soID填充了salesorder ID和REPID。無論如何這都會失敗。

任何人都可以請幫我嗎?

感謝

+0

你能比「這次失敗」更具體嗎?究竟是什麼意思?你回來0對象?你是否得到一個Hibernate異常? – amischiefr 2009-07-07 16:30:34

+0

堆棧跟蹤請! – ThaDon 2009-07-07 16:36:36

回答

2

它,因爲你想創建一個SQL 查詢最有可能失敗。您應該使用HQL代替:

 
Query query = session.createQuery("from SalesOrder so where so.id=:id"); 
query.setParameter("id", salesOrderID); 
query.list(); 

如果這是你的問題一個錯字,你確實使用的createQuery()方法那麼請張貼的異常堆棧跟蹤。

0

我在數據庫bean類中映射不正確。對不起,所有的麻煩,吸取了教訓,爲浪費你的時間道歉。