У меня есть объект Hibernate следующим образом:Hibernate Ленивый объект без отношений
@Entity
@Table(name="SOME_TABLE")
public class SomeEntity {
private Long id;
private String someInfo;
@Id
@Column(name = "ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "SOME_INFO")
public String getSomeInfo() {
return someInfo;
}
public void setSomeInfo(String someInfo) {
this.someInfo = someInfo;
}
}
При загрузке объекта, используя следующий код:
sessionFactory.getCurrentSession().load(getEntityClass(), id);
полей объекта не загружен, а прокси-сервер объект возвращается, и фактические поля загружаются только тогда, когда я их явным образом вызываю их методом getter. Насколько я знаю, простые поля (примитивы, строки) должны быть загружены с нетерпением. Почему поля, которые не являются отношениями или коллекциями, загружаются лениво? есть ли способ попросить Hibernate загрузить их с нетерпением? Это проблема для меня, поскольку я использую этот объект как возвращаемое значение приложения REST Spring, а затем получаю исключение could not initialize proxy - no Session
.
afaik, hibernate загружает свойства жадно по умолчанию. Это поведение можно изменить с помощью «улучшения байт-кода». Может ли это быть каким-то образом установленным по умолчанию в вашем проекте? проверьте этот ответ для обеспечения ленивой загрузки свойств http://stackoverflow.com/questions/19610085/using-lazy-for-properties-in-hibernate. – Mustafa
Нет, мое приложение не настраивает улучшение байт-кода – zuckermanori