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

Bim*_*thy 10 java orm hibernate hibernate-criteria

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

  1. 字符串userId
  2. 字符串userName
  3. UserContact userContact(其中UserContact是一个Embeddable类)

UserContact具有以下变量:

  1. 字符串phoneNumber
  2. String email
  3. 弦城

获取以下列表的Hibernate标准是什么:

userName ='sam'且city ='New York'的用户

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

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

Bim*_*thy 14

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

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

傻,只需添加'userContact.city'而不是'city',其中userContact是我的实体中UserContact类的对象.