Мне нужно отобразить большой стол с примерно 1300 ролями за один раз. (Я знаю, что я должен использовать прокрутку данных, но мои пользователи хотят видеть всю таблицу за один раз.) В таблице отображаются 4 столбца. Два из этих столбцов относятся к объекту, а два других относятся к объектам, включенным в исходный объект. Мне нужно найти лучший/эффективный способ сделать это. В настоящее время у меня это работает, но когда я перезагружаю таблицу, она выдает ошибку из памяти. Я думаю, что это вызвано большим количеством избыточных данных в памяти.JPA и JSF Datatable Optimization
- Создайте объект вида, в котором репозиторий будет заполняться только необходимыми полями.
- Любые другие предложения.
Вот объекты:
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 нужен ленивый груз? Загружаем «Роль», «Приложение» и «База данных». – siebz0r
Retrieved Role будет загружать приложение, которое будет загружать List с нетерпением. Поскольку вы извлекаете все роли из базы данных, я не уверен, будет ли спящий режим автоматически искать уже полученные роли в контексте персистентности. –
JMelnik
коллекции, как мне известно, были ленивыми по умолчанию. – siebz0r