Java Hibernate-CriteriaBuilder集合是否包含筛选器集合的任何元素
我的实体中有以下字段:Java Hibernate-CriteriaBuilder集合是否包含筛选器集合的任何元素,java,hibernate,Java,Hibernate,我的实体中有以下字段: @ElementCollection(targetClass = UserType.class) @CollectionTable(name = "user_type", joinColumns = @JoinColumn(name = "user_id")) @Column(name = "ttype", nullable = false) @Enumerated(EnumType.STRING) public Set&l
@ElementCollection(targetClass = UserType.class)
@CollectionTable(name = "user_type", joinColumns = @JoinColumn(name = "user_id"))
@Column(name = "ttype", nullable = false)
@Enumerated(EnumType.STRING)
public Set<UserType> getUserTypes() {
return userTypes;
}
public void setUserTypes(Set<UserType> userTypes) {
this.userTypes = userTypes;
}
但这显然不起作用。CriteriaBuilder似乎提供了基本的比较函数,如equals
,ge
,等等。但对于此检查,没有任何内容
如何通过CriteriaBuilder进行此类查询?这是否回答了您的问题?很遗憾,没有。我需要检查数据库中的集合是否包含筛选器集合中的任何属性。
因此我需要获取属于筛选器中提供的任何类型的用户。这正是
子句中的的目的。您传入一个可接受值的列表,只有这些值才会从数据库中返回。也有助于发布您的整个code@XtremeBaumer:我想知道isMember
是否起作用,但找不到如何使用它的好例子。但是筛选器可以包含多种类型,而不仅仅是一种类型。
queryRoot.get("userTypes").in(filterTypes)