[英]Hibernate Criteria / Query on object properties
I have a class AppUser
; 我有一个
AppUser
;
class AppUser {
private String firstName;
private String lastName;
//-- getters and setters
}
I also have another class Student
; 我还有另一个班级的
Student
;
class Student {
private AppUser appUser;
private Date dateOfBirth;
//-- getters and setters
}
How would i search for Student John Doe
, firstName John, lastName Doe? 我如何搜索学生
John Doe
,firstName John,lastName Doe?
Had it been the date of birth property, i would create a Criteria
and add an equality Restriction ( Restristions.eq
) on the date. 如果它是出生日期的财产,我会创建一个
Criteria
并在该日期添加一个平等限制( Restristions.eq
)。 How would i do it for lastName and firstName in the AppUser object? 我如何为AppUser对象中的lastName和firstName执行此操作?
You might need to add an alias...something like: 您可能需要添加别名...类似于:
List students = session.createCriteria(Student.class).createAlias("appUser", "user").add(Restrictions.eq("user.firstName", firstName)).list();
Without an alias: 没有别名:
List students = session.createCriteria(Student.class).add(Restrictions.eq("appUser.firstName", firstName)).list();
Query: 查询:
Query q = session.createQuery(
"SELECT s from Student s WHERE s.appUser.firstName=:firstName AND s.appUser.lastName=:lastName");
q.setParameter("firstName", "John");
q.setParameter("lastName", "Doe");
For using Criteria, check this thread 要使用Criteria,请检查此主题
Also take a look at this page from hibernate docs 另请参阅hibernate docs中的这个页面
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.