У меня есть известная проблема, что Hibernate загружает данные даже с аннотацией fetchtype.lazy (описано, например, здесь: http://justonjava.blogspot.de/2010/09/lazy-one-to-one-and-one-to-many.html а>).
Поэтому я добавил аннотацию @LazyToOne(LazyToOneOption.NO_PROXY)
к своим атрибутам и включил инструментарий байт-кода с Springs loadtimeweaver.
Но hibernate по-прежнему жадно загружает мои свойства.
Я протестировал loadtimeweaver, создав собственный код, и он работает. Кто-нибудь знает, чего мне не хватает.
Ниже описывается структура моего кода.
У меня есть сущности с двусторонними односторонними отношениями, такими как:
@Entity
public class ParentEntity {
@OneToOne(fetch = FetchType.LAZY)
@LazyToOne(LazyToOneOption.NO_PROXY)
private ChildEntityONE childentityOne;
@OneToOne(fetch = FetchType.LAZY)
@LazyToOne(LazyToOneOption.NO_PROXY)
private ChildEntityTWO childentityTwo;
}
а также
@Entity
public class ChildEntityONE {
@OneToOne(fetch = FetchType.LAZY)
@LazyToOne(LazyToOneOption.NO_PROXY)
private ParentEntity parentEntity ;
}
@Entity
public class ChildEntityTWO {
@OneToOne(fetch = FetchType.LAZY)
@LazyToOne(LazyToOneOption.NO_PROXY)
private ParentEntity parentEntity ;
}
И я включил в своем классе приложения loadTimeWeaving с помощью:
@EnableLoadTimeWeaving(aspectjWeaving=EnableLoadTimeWeaving.AspectJWeaving.ENABLED)
public class Application {
...
}
Версия используемых фреймворков:
Spring 4.2.3
Spring boot 1.3.2
Hibernate 4.3.11.Final