我正在使用Hibernate 4.2,我们在惰性模式下遇到了@OneToOne
关系和@Lob
的一些问题。
这是一个已知的问题,hibernate将以急切模式而不是懒惰来构建数据:https://developer.jboss.org/wiki/SomeExplanationsOnLazyLoadingone-to-one
为了解决这个问题,我尝试使用字节码检测。现在,我的@OneToOne
关系不使用代理:@LazyToOne(value = LazyToOneOption.NO_PROXY)
。
工作正常!但有些东西我不明白......如果有一些问题可以通过使用字节码检测(无代理模式)解决,为什么hibernate默认使用代理提取模式?
为什么默认情况下不使用此模式? 使用这种无代理模式有什么后果/不便?
我向我介绍了代理和无代理模式之间的区别,但我没有找到每种模式的优缺点。
因为看起来即使我使用字节码检测,它也只会用于标记为NO_PROXY
的关系,不是吗?
感谢您的帮助。