я делаю простой запрос с QueryDsl/JPA/Hibernate, которые можно записать так:Hibernate игнорировать цепочечные сеттер с проекциями фасолью
SELECT u.id, u.name FROM user u WHERE u.id = 1;
Я использую проекцию боб из-за проблемами с производительностью ...
с QueryDsl внешний вид запроса, как это:
query.from(qUser).where(qUser.id.eq(1)).singleResult(
Projections.bean(User.class,
qUser.id,
qUser.name
)
);
Моя проблема в моем User
сущности. Я хочу связать своего сеттера, чтобы все сеттеры вернулись this
. Когда я делаю это с проекционным компонентом Hibernate, не вызывайте сеттеры (я видел его в режиме отладки.), Поэтому мой объект User
не инициализирован.
Для Exemple с этой декларацией User
лица:
@Entity(name = "USER")
public class User {
@Column(name = "ID")
private Long id;
@Column(name = "NAME")
private String name;
public void setId(Long id) { //Setter called
this.id = id;
}
public User setName(String name) { //Setter not called
this.name = name;
return this;
}
}
Я пользователь вернулся мой запрос с null
именем:
User: {id: 1, name: null}
есть решение, чтобы решить эту проблему?