休眠按主键查询

问题描述:

我想通过主键创建查询。 假设我有类主键PersonKey,属性是name和id。休眠按主键查询

我有Person类,属性是PersonKey,address,DOB。

现在,我想通过主键搜索人。

首先,我创建PersonKey的实例,并设置名称变为:乔,ID成为:007

可以通过我得到的ID的人,路过的关键变量?

person.findByKey(someKey); ,但逻辑不标准

是的,你可以。假设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