代码之家  ›  专栏  ›  技术社区  ›  n002213f

对象属性的休眠条件/查询

  •  8
  • n002213f  · 技术社区  · 16 年前

    AppUser

    class AppUser {
       private String firstName;
       private String lastName;
       //-- getters and setters
    }
    

    我还有一节课 Student

    class Student {
       private AppUser appUser;
       private Date dateOfBirth;
       //-- getters and setters
    }
    

    我如何寻找学生 John Doe

    如果是出生日期,我会创建一个 Criteria 并增加平等限制( Restristions.eq )在日期上。对于AppUser对象中的lastName和firstName,我将如何执行此操作?

    2 回复  |  直到 16 年前
        1
  •  8
  •   Bozho    16 年前

    查询:

    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");
    

    this thread

    也来看看 this page from hibernate docs

        2
  •  11
  •   Droo    16 年前

    List students = session.createCriteria(Student.class).createAlias("appUser", "user").add(Restrictions.eq("user.firstName", firstName)).list();
    

    没有别名:

    List students = session.createCriteria(Student.class).add(Restrictions.eq("appUser.firstName", firstName)).list();