Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 使用criteria builder对embedded elementcollection进行jpa select查询_Hibernate_Jpa_Criteria_Predicate - Fatal编程技术网

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”);