具有嵌入对象的实体的Hibernate Criteria

时间:2012-12-23 22:46:55

标签: java hibernate orm hibernate-criteria

我有一个实体“UserDetails”,它有以下变量:

  1. String userId
  2. String userName
  3. UserContact userContact(其中UserContact是一个Embeddable类)
  4. UserContact具有以下变量:

    1. String phoneNumber
    2. 字符串电子邮件
    3. String city
    4. 获取以下列表的Hibernate标准是什么:

      用户名='sam'且使用city ='New York'

      的用户

      我尝试了以下操作并得到了运行时异常,它无法识别变量'city':

      List<UserLogin> list = session.createCriteria(UserLogin.class)
          .add(Restrictions.eq("userName","sam"))
          .add(Restrictions.eq("city", "New York"))
          .list();
      

1 个答案:

答案 0 :(得分:13)

哦,我想通了......

List<UserLogin> list = session.createCriteria(UserLogin.class)
   .add(Restrictions.eq("userName","sam"))
   .add(Restrictions.eq("userContact.city", "New York"))
   .list();

愚蠢,只需要添加'user Contact.city'而不是'city',其中user Contact是我的实体中UserContact类的对象。