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

时间:2020-03-05 18:49:13  来源:igfitidea点击:

在我的数据库中,我有一个实体表(我们称它为Entity)。每个实体可以具有许多实体类型,并且实体类型的集合是静态的。因此,存在一个连接表,其中包含实体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;
}

解决方案

回答

关系是双向的吗,也就是说," EntityType"是否具有" Entity"属性?如果是这样,我们可能可以执行EntityType中的entity.Name,其中name =?

回答

总部:

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

我认为我们也可以这样写:

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