您的位置:首页 > 其它

解决JPA延迟加载错误问题

2009-07-09 10:54 447 查看
一:(Spring + Struts + JPA)解决办法

在entity中的@OneToMany、@OneToOne等中设置fetch = FetchType.LAZY 时,在Struts2的Action中进行相关操作出现错误信息如下
org.hibernate.LazyInitializationException异常

解决方法:

在web.xml中加入以下代码:注意必须Struts配置文件的书写顺序 ,必须放到FIlterDispatcher之前

<filter>
<filter-name>jpaFilter</filter-name>
<filter-class>
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>jpaFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>


二:SpringMVC +JPA防止延迟加载错误的解决办法:

配置文件如下

<bean name="openEntityManagerInViewInterceptor"
class="org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor">
<property name="entityManagerFactory">
<ref bean="entityManagerFactory"/>
<property>
</bean>

<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix"  value ="/WEB-INF/jsp/"  />
<property name="suffix"  value =".jsp"  />
</bean>

<bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
<property name ="interceptors">
<list>
<ref bean ="openEntityManagerInViewInterceptor"  />
</list>
</property>
<property name ="mappings">
<props>
<prop key="hello.html"> helloController </prop>
<prop key="login.html" > loginAction </prop>
<prop key="userManager.html" > userController </prop>
<prop key="userList.html" > userListController </prop >
</props>
</property>
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: