关于枚举:在Hibernate的Criteria API中查询值类型的集合

关于枚举:在Hibernate的Criteria API中查询值类型的集合

Querying collections of value type in the Criteria API in Hibernate

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

1
2
3
4
5
6
7
8
9
@CollectionOfElements
@JoinTable(
        name ="ENTITY-ENTITY-TYPE",
        joinColumns = @JoinColumn(name ="ENTITY-ID")
)
@Column(name="ENTITY-TYPE")
public Set<EntityType> getEntityTypes() {
    return entityTypes;
}

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

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


HQL:

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

我认为您也可以这样写:

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

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

的操作


推荐阅读