2017-06-26 12 views
0

私はCandidateEntityを持っていますが、各CandiadateEntityには複数のジョブタグがあります。すべてのCandidateEntityに特定のジョブタグリスト内の任意のジョブタグを照会したいCollectionTableで次のコードを実行するにはどうすればよいですか。CollectionTableを使用したJPQLのクエリ演算子

query = "SELECT c FROM CandidateEntity c JOIN c.jobFlags f WHERE f in :job_flags" 

@ElementCollection(fetch = FetchType.EAGER) 
@CollectionTable(name = "job_flags") 
@Column(name = "job_flag") 
private List<String> jobFlags; 

ありがとうございました。

答えて

0

はこの試してみてください。

私はそれを試してみました
List<CandidateEntity> candidates= em.createQuery("SELECT c " + 
    "FROM CandidateEntity c " + 
    "WHERE :ids IN c.jobFlags") 
    .setParameter("ids",Arrays.asList(yourList))) 
    .getResultList(); 
+0

、私が得たエラーメッセージ:com.fasterxml.jackson.databind.JsonMappingException: –

+0

によって引き起こさSTART_OBJECTトークンのうち、java.util.ArrayListのインスタンスをデシリアライズすることはできません[ソース:[email protected]; 1行:1] –

+0

これは他の誰かが気まぐれになったために発生する奇妙なエラーです。リストを印刷して結果を確認してみることはできますか? –

関連する問題