简体   繁体   English

对象属性的Hibernate Criteria / Query

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM