3
エンティティのリストからいくつかの基準に基づいて埋め込み可能なクラスを "抽出"しようとしています。 JPQLまたはCriteria APIの助けを借りて私はこれでプロではないので、私を助けてください。何の結果も出さずに答えが得られたのは4時間だった。JPA:エンティティ内の埋め込みリストを照会する
これらはクラスである:
@Entity
public class PostOffice {
@Id
private Long id;
@ElementCollection(fetch=FetchType.LAZY)
@CollectionTable([email protected](name = "CARRIERID"))
private List<PostalCarrier> carriers;
}
@Embeddable
public class PostalCarrier {
@JoinColumn(name = "area")
private Area area;
}
@Entity
public class Area {
@Id
private int code;
}
だから、基本的に私は何を達成しようとしているが、このようなものです。
TypedQuery<PostalCarrier> query = entityManager.createQuery("SELECT p.carriers FROM PostOffice p
WHERE p.id = ?1 AND p.carriers.area.code = ?2", PostalCarrier.class);
query.setParameter(1, postOfficeId);
query.setParameter(2, areaCode);
私は、特定のポストオフィスから特定のエリアコードでPostalCarriersのリストを取得したいです。 ご迷惑をおかけして申し訳ありません。 :)
私はほとんどそこだと思いますが、次のエラーを取得しておいてください。
Error compiling the query [SELECT h FROM PostOffice p INNER JOIN p.carriers h
WHERE p.id = ?1 AND h.area.code = ?2], line 1, column 71: unknown state or
association field [area] of class [com.test.PostalCarrier].