在Hibernate的Criteria API中查询值类型的集合

时间:2008-09-08 08:46:37

标签: hibernate enums hql

在我的数据库中,我有一个实体表(我们称之为实体)。每个实体可以具有多个实体类型,并且实体类型集是静态的。因此,有一个连接表,其中包含实体ID的行和实体类型的名称。在我的代码中,EntityType是一个枚举,而Entity是一个Hibernate映射的类 在实体代码中,映射如下所示:

@CollectionOfElements
@JoinTable(
        name = "ENTITY-ENTITY-TYPE",
        joinColumns = @JoinColumn(name = "ENTITY-ID")
)
@Column(name="ENTITY-TYPE")
public Set<EntityType> getEntityTypes() {
    return entityTypes;
}

哦,我提到我正在使用注释吗? 现在,我想要做的是创建一个HQL查询或使用一个特定实体类型的所有Entity对象的Criteria进行搜索。

Hibernate论坛中的This页面说这是不可能的,但是这个页面已经有18个月了。任何人都可以告诉我这个功能是否已经在最新版本的Hibernate中实现,或计划在即将发布的版本中使用?

2 个答案:

答案 0 :(得分:1)

HQL:

select entity from Entity entity where :type = some elements(entity.types)

我认为你也可以这样写:

select entity from Entity entity where :type in(entity.types)

答案 1 :(得分:0)

您的关系是双向的,即EntityType是否有Entity属性?如果是这样,您可以执行entity.Name from EntityType where name = ?

之类的操作