Я пытаюсь «извлечь» встраиваемые классы на основе некоторых критериев из списка в сущности. Либо с помощью 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);
Я хочу получить список только почтовых операторов с определенным кодом города из определенного PostOffice.
Любая помощь высоко ценится! :)
Я думаю, что я почти у цели, но продолжаю получать следующую ошибку:
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].