Witam,
posiadam takie DTO:
@Builder
@AllArgsConstructor
public class CustomerDTO {
private String firstName;
private String lastName;
private AccountDTO accountDTO;
private AddressDTO addressDTO;
}
no i chcę zrobić dość zagnieżdżonego selecta, który w skrócie ma wyglądać tak:
@Override
public List<CustomerDTO> findByStreet(String street) {
TypedQuery<CustomerDTO> query= em.createQuery("SELECT new CustomerDTO(c.firstName, c.lastName, new AccountDTO(ac.login), new AddressDTO(a.city, a.street, a.houseNumber, a.zipCode)) " +
"from Customer c, Address a, Account ac " +
"join c.address a " +
"join c.account ac " +
"where a.street=:street", CustomerDTO.class)
.setParameter("street", street);
return query.getResultList();
}
ale nie można mieć zagnieżdżonych new
w sobie, więc jak to obejść? Inaczej napisać DTO? Czy jakieś obejście na takie Query są?