次のエラーが発生するtypedQueryを試しています:java.lang.IllegalArgumentException:非エンティティのコレクションの要素結合を作成できません!
JPA2.0を使用しています
私のコード:
@Entity
public class Example {
@ElementCollection(targetClass=ExampleData .class,fetch = FetchType.EAGER)
@MapKeyColumn(name = "locale_key")
@CollectionTable(name = "exampleLocalizedData", joinColumns = @JoinColumn(name = "exampleId"))
private Map<String, IExampleData> exampleLocalizedData;
}
@Embeddable
public class ExampleData {
private String data;
.....
}
私の質問:
String querySentence = "SELECT DISTINCT e FROM Example e WHERE e.exampleLocalizedData[:locale].name LIKE :filter ";
TypedQuery<Example > actualQuery = entityManager.createQuery(querySentence, Example .class);
私の質問は、これを行うための正しいクエリはどれですか?
よろしく。
編集:
知りたい場合の最終クエリ:
select DISTINCT e FROM Example e join e.exampleLocalizedData r WHERE index(r) = :locale AND r.name LIKE :filter .