2017-05-06 13 views
0

と埋め込まelementcollection上のクエリ私はこのような埋め込まれた要素のコレクションを持つエンティティ持っている:私は通過したときにように私はJPA CriteriaBuilderフレームワークを使用して基準を書きたいと思いJPA基準ビルダー

... 
     @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; 
     } 
... 

をそれはProviderResponseと比較するには、を持つすべてのエンティティをproviderResponses要素コレクションに返します。

ProviderResponseは、単に2つの列挙クラスの化合物クラス、ProviderおよびResponseです。

私は述語を作成しようとしています:

Predicate providerResponse = builder.equal(root.<Set<ProviderResponse>>get("providerResponses"), compProviderResponse); 

これは

「パラメータ値ProviderResonseが期待されるタイプ[java.util.Setと一致しませんでした」と言って動作していない私はこれを理解しかし、私が望む比較をどうやって行うのかは分かりません。

誰か助けてもらえますか?

答えて

0

どのように恥ずかしい、私はちょうど少し反映し、答えを見つけた。

述語は次のようになります。

Predicate providerResponsePredicate = builder.isMember(compProviderResponse, root.<Set<ProviderResponse>>get("providerResponses")); 
関連する問題