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

Posted

技术标签:

【中文标题】具有嵌入对象的实体的休眠条件【英文标题】:Hibernate Criteria for entity with embedded objects 【发布时间】:2012-12-10 12:28:09 【问题描述】:

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

    字符串用户ID 字符串用户名 UserContact userContact(其中 UserContact 是一个 Embeddable 类)

UserContact 有以下变量:

    字符串电话号码 字符串电子邮件 字符串城市

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

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

我尝试了以下操作并得到了它无法识别变量“城市”的运行时异常:

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

【问题讨论】:

【参考方案1】:

哦,我想通了……

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

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

【讨论】:

以上是关于具有嵌入对象的实体的休眠条件的主要内容,如果未能解决你的问题,请参考以下文章

休眠条件排序依据

如何过滤具有多个条件的托管对象实体

在实体框架中加载具有过滤条件的子对象记录

休眠条件查询到 JPA 条件查询

具有内部列表条件的休眠 NamedQuery

休眠条件:在没有映射关联的情况下加入表