我需要一次显示大约1300个角色的大表。 (我知道我应该使用数据滚动,但我的用户希望一次看到整个表格。)该表格显示4列。其中两列来自对象,但另外两列来自原始对象中的引用对象。我需要找到最好的/有效的方式来做到这一点。我目前有这个工作,但是当我重新加载表时,它给出了内存不足的错误。我认为这是由内存中大量的冗余数据造成的。JPA和JSF数据表优化
- 创建一个视图对象,仓库将只填写所需的字段。
- 其他建议。
这里有对象:
public class Database extends EntityObject {
private Long id;
private String name;
private String connectionString;
private String username;
private String password;
private String description;
// getter and setters omitted
}
public class Application extends EntityObject {
private Long id;
private String name;
private String fullName = "";
private String description;
private Database database;
private List<Role> roles = new ArrayList<Role>(0);
// getter and setters omitted
}
public class Role extends EntityObject {
private Long id;
private String name;
private String nameOnDatabase;
private Application application;
// getter and setters omitted
}
什么,我需要从角色的列表中显示为:
role.id,role.name,role.application.name,role.application .database.name
为什么OP要延迟加载? OP的加载“角色”,“应用程序”和“数据库”。 – siebz0r
检索到的角色将加载应用程序,这将加载列表热切。既然您正在从数据库中检索所有角色,我不确定hibernate是否会自动在持久性上下文中查找已检索的角色。 –
JMelnik
集合在默认情况下根据我的知识获取。 – siebz0r