Hibernate 使用criteria builder对embedded elementcollection进行jpa select查询
我有一个实体,它有一个嵌入式元素集合,如下所示:Hibernate 使用criteria builder对embedded elementcollection进行jpa select查询,hibernate,jpa,criteria,predicate,Hibernate,Jpa,Criteria,Predicate,我有一个实体,它有一个嵌入式元素集合,如下所示: ... @Embedded @ElementCollection(targetClass = ProviderResponse.class) @JoinTable( name = "provider_response", joinColumns = @JoinColumn(name = "id") ) @AttributeOv
...
@Embedded
@ElementCollection(targetClass = ProviderResponse.class)
@JoinTable(
name = "provider_response",
joinColumns = @JoinColumn(name = "id")
)
@AttributeOverrides({
@AttributeOverride(name = "provider", column = @Column(name = "provider")),
@AttributeOverride(name = "response", column = @Column(name = "response"))
})
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public Set<ProviderResponse> getProviderResponses() {
return providerResponses;
}
...
这样说是行不通的
“参数值ProviderResonse与预期类型[java.util.Set]不匹配”
我理解这一点,但不确定如何进行我想要的比较
有人能帮忙吗?真尴尬,我刚刚想了想,找到了答案 谓词应为:
Predicate providerResponsePredicate = builder.isMember(compProviderResponse, root.<Set<ProviderResponse>>get("providerResponses"));
谓词providerResponsePredicate=builder.isMember(compProviderResponse,root.get(“providerResponses”);
多么尴尬啊,我刚刚思考了一下,找到了答案 谓词应为:
Predicate providerResponsePredicate = builder.isMember(compProviderResponse, root.<Set<ProviderResponse>>get("providerResponses"));
谓词providerResponsePredicate=builder.isMember(compProviderResponse,root.get(“providerResponses”);