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

hibernate:使用条件访问对象中的对象

  •  1
  • mkoryak  · 技术社区  · 14 年前

    我正在使用条件获取包含活动用户的通知列表。问题是我得到以下错误:

    org.hibernate.QueryException: could not resolve property: user.active of: com.company.Notification
    

    然后检查用户是否处于活动状态,我需要检查通知的类型是否符合我的要求。这是我的代码:

    session.createCriteria("com.company.Notification")
        .add(Restrictions.or(Restrictions.eq("type", "email"), 
        .add(Restrictions.eq("user.active", true)).list();
    

    通知有一个字段 User user 又有一个领域 Boolean active

    我在看这一页: https://forum.hibernate.org/viewtopic.php?t=948576&highlight=subproperty

    但我仍然没有探索如何创建一个访问父对象和子对象中某些内容的条件。

    1 回复  |  直到 14 年前
        1
  •  6
  •   fasseg    14 年前

    试试这个:

    session.createCriteria("com.company.Notification")
        .add(Restrictions.or(Restrictions.eq("type", "email")
        .createCriteria("user") // this creates the join on the user table...
        .add(Restrictions.eq("active", true)).list();
    

    希望这有助于。。。

    推荐文章