Java 按主键休眠查询
我想通过主键创建查询。 假设我有类主键PersonKey,属性是name和id 我有Person类,属性是PersonKey,address,DOB 现在,我想用主键搜索人 首先,我创建PersonKey的实例,并将名称设置为:joe,id设置为:007 我可以通过ID,通过传递关键变量来获取此人吗Java 按主键休眠查询,java,hibernate,orm,Java,Hibernate,Orm,我想通过主键创建查询。 假设我有类主键PersonKey,属性是name和id 我有Person类,属性是PersonKey,address,DOB 现在,我想用主键搜索人 首先,我创建PersonKey的实例,并将名称设置为:joe,id设置为:007 我可以通过ID,通过传递关键变量来获取此人吗 person.findByKey(someKey),但是逻辑不符合标准是的,您可以。假设PersonKey是Serializable,只需将其传递给get方法: PersonKey pk = new
person.findByKey(someKey),但是逻辑不符合标准是的,您可以。假设
PersonKey
是Serializable
,只需将其传递给get
方法:
PersonKey pk = new PersonKey(007l, "joe");
Person person = (Person) session.get(Person.class, pk);
为什么PersonKey需要序列化?@Reddy是因为Session.get(Class,serializable)的签名。谢谢Pascal,但是为什么hibernate强制序列化?据我所知,hibernate将生成SQL语句,然后仅通过网络发送到数据库,在这种情况下,不需要序列化。。对吗?知道这为什么会给我java.lang.IllegalStateException:在org.hibernate.query.criteria.internal.CriteriaQueryImpl.validate(CriteriaQueryImpl.java:253)中没有指定任何条件查询根吗