Java 懒洋洋和弹簧负荷时间织工
我有一个已知的问题,即Hibernate即使使用注释fetchtype.lazy也会加载数据 因此,我将注释Java 懒洋洋和弹簧负荷时间织工,java,spring,hibernate,spring-boot,load-time-weaving,Java,Spring,Hibernate,Spring Boot,Load Time Weaving,我有一个已知的问题,即Hibernate即使使用注释fetchtype.lazy也会加载数据 因此,我将注释@LazyToOne(LazyToOneOption.NO_PROXY)添加到我的属性中,并使用springs loadtimeweaver启用字节码检测。但是hibernate仍然急切地加载我的属性 我已经通过编写自己的代码测试了loadtimeweaver,它可以正常工作。有人知道我错过了什么吗 下面介绍我的代码的结构 我有一些实体具有双重关系,比如: @Entity public c
@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;
}
及
我在应用程序类loadTimeWeaving中启用了:
@EnableLoadTimeWeaving(aspectjWeaving=EnableLoadTimeWeaving.AspectJWeaving.ENABLED)
public class Application {
...
}
所用框架的版本:
弹簧4.2.3弹簧靴1.3.2
Hibernate 4.3.11.Final
我发现了我的错误。我忘记在application.properties中设置以下属性
spring.jpa.properties.hibernate.ejb.use_class_enhancer=true
此属性在hibernate中启用字节码增强功能发现此帖子非常有用,感谢此链接。这有助于理解hibernate的延迟加载,但不能解决我的问题。。
spring.jpa.properties.hibernate.ejb.use_class_enhancer=true