Hibernate 带有嵌入式ElementCollections的JPA CriteriaBuilder

Hibernate 带有嵌入式ElementCollections的JPA CriteriaBuilder,hibernate,jpa,criteria-api,Hibernate,Jpa,Criteria Api,我试图从一个包含ElementCollection的嵌入式实体的对象中进行查询 enum类MyEnum{VALUE1,VALUE2} 数据类MyObject( @嵌入 val embedded:EmbeddedObject?=EmbeddedObject(), ) @可嵌入 数据类嵌入对象( @ElementCollection(targetClass=MyEnum::class) @CollectionTable(name=“t_my_enum”,joinColumns=[JoinColumn

我试图从一个包含ElementCollection的嵌入式实体的对象中进行查询

enum类MyEnum{VALUE1,VALUE2}
数据类MyObject(
@嵌入
val embedded:EmbeddedObject?=EmbeddedObject(),
)
@可嵌入
数据类嵌入对象(
@ElementCollection(targetClass=MyEnum::class)
@CollectionTable(name=“t_my_enum”,joinColumns=[JoinColumn(name=“fk_my_object”))
@列(name=“枚举值”)
@枚举(值=字符串)
val enumValues:Set=mutableSetOf(),
}
我现在尝试过滤结果,以包含来自
MyEnum
的一组值。 当前方法(不起作用):

val myFilter=mutableSetOf(值1)
val标准:CriteriaBuilder=entityManager.CriteriaBuilder
val查询:CriteriaQuery=criteria.createQuery(MyObject::class.java)
val root:root=query.from(MyObject::class.java)
root.where(root.get(“嵌入式”).get(“枚举值”)。`in`(myFilter)))
此操作失败,并显示以下错误消息:

java.lang.IllegalArgumentException:参数值[VALUE1]与预期类型[java.util.Set(n/a)]不匹配。


我还尝试连接EmbeddedObject或enumValues列,但两者都不起作用。

虽然
EmbeddedObject
没有相应的数据库表,但解决方案是
join
it和
MyEnum
而不是使用
get

root.where(root.join<MyObject, EmbeddedObject>("embedded").join<EmbeddedObject, MyEnum>("enumValues").`in`(myFilter))
root.where(root.join(“嵌入式”).join(“枚举值”)。`in`(myFilter))

虽然
EmbeddedObject
没有相应的数据库表,但解决方案是
join
it和
MyEnum
而不是使用
get

root.where(root.join<MyObject, EmbeddedObject>("embedded").join<EmbeddedObject, MyEnum>("enumValues").`in`(myFilter))
root.where(root.join(“嵌入式”).join(“枚举值”)。`in`(myFilter))