我遇到了Hibernate标准的问题.我正在尝试创建一个Criteria,我查看查询返回的类的成员对象的id.
例如:
Criteria crit = session.createCriteria(Enquiry.class);
crit.add(Expression.eq("lecture.admin.id", userId));`
Run Code Online (Sandbox Code Playgroud)
结果是一个例外:
org.hibernate.QueryException: could not resolve property: lecture.admin.id of: xxx.yyy.Enquiry
该Enquiry班确实包含讲座变量,又包含了admin变量.我尝试过使用lecture.id,效果很好.
像这样的对象层次结构中的级别数是否有限制?
谢谢!
代码片段:
public class Lecture extends TransferItem {
private User admin;
public User getAdmin() {
return admin;
}
}
Run Code Online (Sandbox Code Playgroud)
'User'类扩展了Person类,后者又扩展了一个Item类,该类具有以下getId()方法:
public Integer getId() {
if (id != null) {
return id;
}
return TransferBean.NOT_SET;
}
Run Code Online (Sandbox Code Playgroud)
从Hibernate映射XML:
<class name="User" table="user">
<id column="user_id" name="id">
<generator class="increment"/>
</id>
...
<class name="Lecture" table="lecture">
<many-to-one class="User" …Run Code Online (Sandbox Code Playgroud) 我想执行类似的查询
Select id, name from information where name not in (select firstname from contact where id = 1)
Information
Id Name
1 Test
Contact
id firstname
1 name
2 Test
Run Code Online (Sandbox Code Playgroud)
如果我使用neProperty()函数,它将返回记录为 name != Test.
如何使用hibernate标准实现?
谢谢