我正在尝试找出仅加载显示数百行的 ListView 的某些属性的正确方法。
例如,想象一个 Person 实体,它有很多属性,但我只想获取列表的名字和姓氏。
使用 Hibernate/JPA 实现这一目标的最佳方法是什么?
A)我是否应该安排我的实体,以便它们仅包含一些属性,其余属性位于使用一对一关系的单独实体(和表)中?
B) 我应该使用 Hibernate 的惰性属性获取吗?甚至手册上都说它“主要是一种营销功能”?
C)还有其他方法可以做到这一点吗?
最佳答案
您可以使用 JPQL NEW
运算符。
您可以创建一些 DTO 对象并在 JPQL 查询中初始化它:
public class PersonDTO {
private String firstName;
private String surname;
public PersonDTO(String firstName, String surname) {
this.firstName = firstName;
this.surname = surname;
}
// getters setters
}
Select NEW PersonDTO(p.firstName, p.surname) From Person p;
关于hibernate - 限制 JPA/Hibernate 中列表获取数据的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15256405/