У меня есть вложенная структура сущностей JPA, которая выглядит примерно так:
@Entity
public class Applicant {
@OneToMany()
private Set<Address> addresses;
// other applicant fields
}
@Entity
public class Address {
private String houseName;
private String houseNumber;
private String postcode;
}
И я пытаюсь получить сведения о заявителе с помощью набора адресов по следующему запросу, но он возвращает «Несоответствие типов»
private static final ConstructorExpression<AddressEntity> qAddresses = QAddressEntity.create(
qAddressEntity.houseName, qAddressEntity.houseNumber, qAddressEntity.postcode);
@Test
public void shouldTestAddressWithProjection() {
JPAQuery<ApplicationEntity> jpaQuery = new JPAQuery<>(entityManager);
QueryResults<ApplicantEntity> queryResults = jpaQuery.select(
Projections.bean(ApplicantEntity.class, qApplicantEntity.forename, qApplicantEntity.surname,
GroupBy.set(qAddresses).as("addresses")))
.from(qApplicantEntity)
.leftJoin(qApplicantEntity.addresses, qAddressEntity)
.where(qApplicantEntity.forename.startsWithIgnoreCase("Nikki"))
.fetchResults();
}
Я знаю о том, что я могу использовать .transform()
, и он работает, но я теряю нумерацию страниц, которая идет с fetchResults()
.Пожалуйста, дайте мне знать решение этой проблемы.