Я изо всех сил пытаюсь понять, как использовать вложенные проекты / заполнять многие стороны. У меня есть пользовательская сущность, которая имеет отношения ManyToMany
с брендом. Я создал следующие интерфейсы проекции ...
interface UserView {
@Value("#{target.id}")
fun getId(): Long
fun getFirstName(): String
fun getLastName(): String
fun getBrands(): MutableSet<BrandView>
}
interface BrandView {
fun getId(): Long
fun getName(): String
fun getDescription(): String
}
В моем репозитории у меня есть следующее @Query
@Query("select u.id, u.firstName, u.lastName, b.id, b.name, b.description from User u left join u.brands b where u.id = :id")
fun findByIdUsingProjectionDto(@Param("id") id: Long): UserView
Сгенерированный SQL верен и вернетсоответствующие данные, однако, хотя UserView
заполнен данными, getBrands()
возвращает ноль. Я не уверен, как получить запрос, чтобы также заполнить коллекцию брендов.