2010-05-17 160 views
3

我想通過主鍵創建查詢。 假設我有類主鍵PersonKey,屬性是name和id。休眠按主鍵查詢

我有Person類,屬性是PersonKey,address,DOB。

現在,我想通過主鍵搜索人。

首先,我創建PersonKey的實例,並設置名稱變爲:喬,ID成爲:007

可以通過我得到的ID的人,路過的關鍵變量?

person.findByKey(someKey); ,但邏輯不標準

回答

5

是的,你可以。假設PersonKeySerializable,只需將其傳遞給get方法:

PersonKey pk = new PersonKey(007l, "joe"); 
Person person = (Person) session.get(Person.class, pk); 
+0

爲什麼PersonKey需要可序列化? – Reddy 2010-06-09 06:01:35

+0

@Reddy由於Session.get(Class,Serializable)的簽名' – 2010-06-09 08:09:44

+0

感謝Pascal,但爲什麼hibernate強制序列化? 根據我的理解,hibernate會生成SQL語句,然後只通過網絡發送到數據庫,在這種情況下,序列化是不必要的。對吧? – Reddy 2010-06-09 13:34:02