gpt4 book ai didi

java - Hibernate:搜索包含一组枚举中的值的实体

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:24 25 4
gpt4 key购买 nike

我有一个类似于以下示例的实体:

@Entity
@Table(name = "AIRPLANE")
public class Airplane {

@ElementCollection(targetClass = Color.class, fetch = FetchType.LAZY)
@CollectionTable(name = "AIRPLANE_COLORS", joinColumns = @JoinColumn(name = "AIRPLANE_ID"))
@Column(name = "AIRPLANE_COLOR")
@ForeignKey(name = "FK_AIRPLANE_COLOR_ID")
@Enumerated(EnumType.STRING)
private Set<Color> colors;
...
}
...
public enum Color {
WHITE, RED, BLUE
}

其中颜色是一组枚举,我想搜索该集中包含颜色红色的所有实体 Airplanes。

我可以使用 Criterias 实现这一点还是应该使用 HQL 查询?

谢谢!

最佳答案

有一种方法可以使用 Hibernate 中的 Criteria 来执行此类查询。您只需加入 colors 并请求其 elements 属性(即 colors.elements)。

elements 是 Hibernate 的 CollectionPropertyNames 类中定义的关键字,您可以使用它访问枚举值。

session.createCriteria(Airplane.class)
.createAlias("colors", "colors")
.add(Restrictions.eq("colors.elements", Color.BLUE))
.list()

关于java - Hibernate:搜索包含一组枚举中的值的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com