Java 具有嵌入对象的实体的休眠条件

Java 具有嵌入对象的实体的休眠条件,java,hibernate,orm,hibernate-criteria,Java,Hibernate,Orm,Hibernate Criteria,我有一个实体“UserDetails”,它有以下变量: 字符串用户ID 字符串用户名 UserContact UserContact(其中UserContact是一个可嵌入类) UserContact具有以下变量: 字符串电话号码 字符串电子邮件 弦城市 获取以下列表的休眠条件是什么: 用户名为'sam'和城市为'newyork'的用户 我尝试了以下操作,得到运行时异常,即它无法识别变量“city”: List<UserLogin> list = session.createCrit

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

  • 字符串用户ID
  • 字符串用户名
  • UserContact UserContact(其中UserContact是一个可嵌入类)
  • UserContact具有以下变量:

  • 字符串电话号码
  • 字符串电子邮件
  • 弦城市
  • 获取以下列表的休眠条件是什么:

    用户名为'sam'和城市为'newyork'的用户

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

    List<UserLogin> list = session.createCriteria(UserLogin.class)
        .add(Restrictions.eq("userName","sam"))
        .add(Restrictions.eq("city", "New York"))
        .list();
    
    List List=session.createCriteria(UserLogin.class)
    .add(Restrictions.eq(“用户名”、“sam”))
    .add(Restrictions.eq(“城市”、“纽约”))
    .list();
    
    哦,我想出来了

    List<UserLogin> list = session.createCriteria(UserLogin.class)
       .add(Restrictions.eq("userName","sam"))
       .add(Restrictions.eq("userContact.city", "New York"))
       .list();
    
    List List=session.createCriteria(UserLogin.class)
    .add(Restrictions.eq(“用户名”、“sam”))
    .add(Restrictions.eq(“userContact.city”、“纽约”))
    .list();
    
    愚蠢,只需要添加“userContact.city”而不是“city”,其中userContact是我的实体中userContact类的对象