エンティティのリストからいくつかの基準に基づいて埋め込み可能なクラスを「抽出」しようとしています。JPQL または Criteria API を使用します。私はこれのプロではないので、助けてください。結果なしで答えを得るために4時間しっかりとグーグルしています。
これらはクラスです:
@Entity
public class PostOffice {
@Id
private Long id;
@ElementCollection(fetch=FetchType.LAZY)
@CollectionTable(joinColumns=@JoinColumn(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].