除了使用OpenSessionInView模式之外,还有其他方法可以避免在Hibernate Web应用程序中出现LazyInitializationExceptions吗?使用OpenSessionInView有任何不利之处吗?

最佳答案

在使用Web应用程序时,我们通常会事先确定 View 页面中需要哪些对象/字段,并确保在分派(dispatch)到 View 之前从模型正确初始化了所有objec。

这可以通过(至少)三种方式来完成:

  • 使用急切策略(即如果使用fetching,则使用FetchMode.JOIN)的Criteria API属性
  • 显式初始化属性(即使用Hibernate.initialize(property))
  • 通过调用适当的属性访问器
  • 隐式初始化属性

    关于OpenSessionInView的缺点,您是否 checkout 了this页面?

    09-27 14:16