在我的数据库中,我有一个实体表(我们称之为实体)。每个实体可以具有多个实体类型,并且实体类型集是静态的。因此,有一个连接表,其中包含实体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中实现,或计划在即将发布的版本中使用?
答案 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 = ?