hibernate-关于在使用struts2整合Hibernate时疑问

问题描述

关于在使用struts2整合Hibernate时疑问

java.lang.ClassCastException: com.enity.www.User_$$_javassist_2 cannot be cast to javassist.util.proxy.Proxy
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:148)
at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.getProxy(JavassistProxyFactory.java:73)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:758)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:4419)
at org.hibernate.event.internal.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:333)
at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:259)
at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:151)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1017)
at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:944)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:671)
at org.hibernate.type.EntityType.resolve(EntityType.java:489)
at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:168)
at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1112)
at org.hibernate.loader.Loader.processResultSet(Loader.java:969)
at org.hibernate.loader.Loader.doQuery(Loader.java:917)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:348)
at org.hibernate.loader.Loader.doList(Loader.java:2548)
at org.hibernate.loader.Loader.doList(Loader.java:2534)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2364)
at org.hibernate.loader.Loader.list(Loader.java:2359)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:495)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:357)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1194)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
at com.test.www.TestBookDaoImp.testBorrow(TestBookDaoImp.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

在整合struts2和hibernate 查询时遇到这个问题 最后在被关联的映射文件添加了lazy="false"解决了 但是为什么啊,之前只用hibernate时都是没有错误的

解决方案

你的Hibernate用事务了吗,事务用在Service类上了吗?这样的话,你类里的集合属性在映射文件里默认的lazy=true的,也就是集合用了懒加载的;
而当你用这个集合的时候,Service类里还是代理的,而当你的Service类里的某个操作数据库的方法执行完毕后,你的session就关闭了;也就是说你在其它层调用的
是代理对象而不是从数据库中真正获取到的值;所以你在调用你事务类里的某个方法操作数据库获得代理对象后,最好写一句废话强制代理执行一下。
例如:假设代理为user对象,你可以在下面写这样一句废话:user.getId();其目的就是要代理执行,也就是获取到数据库里真正的数据,然后在其它层操作就没有问题了。
如果回答对您有帮助,记得采纳啊。

解决方案二:

不添laze=“false”应该是可以的,看你的错误原因我感觉你jar包冲突了,你看看lib目录下是不是有两个 javassit-XX.jar,若果是,删掉一个就行

解决方案三:

Hibernate之struts2整合hibernate以及MVC分层架构的使用

时间: 2024-10-31 13:33:32

hibernate-关于在使用struts2整合Hibernate时疑问的相关文章

java-测试Spring整合hibernate/Struts2框架时,配置文件报奇怪的错误,求解

问题描述 测试Spring整合hibernate/Struts2框架时,配置文件报奇怪的错误,求解 为什么会报无法识别property? 解决方案 怎么都是这种问题,property要包含在bean标签内 解决方案二: Struts2+hibernate+spring整合时错误Struts2+hibernate+spring整合时错误 解决方案三: http://iteye.blog.163.com/blog/static/186308096201210265334689/ 解决方案四: pro

ssh整合-spring整合hibernate做测试时没有报错,当三个整合时启动就报错啦,求大神指点!!

问题描述 spring整合hibernate做测试时没有报错,当三个整合时启动就报错啦,求大神指点!! 报的错误org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method 'ecsUnsigned' on target class [class $Proxy17] failed; nested exception is org.springframework.tran

Struts2和hibernate框架整合实现简单的注册登陆功能

Struts2和hibernate框架整合实现简单的注册登陆功能 项目结构: LoginAction.java package action; import vo.User; import vo.UserDAO; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { /** * */ private static final long serialVersion

ssh整合-spring hibernate struts2整合出现空指针异常

问题描述 spring hibernate struts2整合出现空指针异常 本人菜鸟大学生一枚,跪求高手指教,不甚感激, 我在spring hibernate整合后测试没有问题,可以实现对数据库的操作,然后我整合struts,同样的在action中调用业务方法,查询数据库所有的时候,出现空指针异常 解决方案 调试下哪的空指针,如果是属性注入失败的话,检查spring的配置文件是否正确. 解决方案二: 没有进入到你的action中的方法里面,用debug调试一下,看看是不是哪里写错了 解决方案三

java-学习Sping整合Hibernate时出现的异常,希望能帮忙看下。

问题描述 学习Sping整合Hibernate时出现的异常,希望能帮忙看下. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl' defined in file [G:SpringSpring_1900_MyAOP_HibernateTransaction_XMLbindaoimplUserDaoImpl.class]: BeanPostProce

struts2 spring hibernate整合后报错

问题描述 struts2 spring hibernate整合后报错 在eclipse里面run on server之后,可以正确显示界面,但当填写表单点击按钮后出现了这个报错 Struts Problem Report Struts has detected an unhandled exception: Messages: 1.org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session; 2.Method

spring4 整合 hibernate时 产生HibernateTemplate报错

问题描述 spring4 整合 hibernate时 产生HibernateTemplate报错 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'urlMapping' defined in ServletContext resource [/WEB-INF/web-config.xml]: Initialization of bean failed; nested e

s2sh整合问题 tomcat启动没异常 访问.jsp 和action失败 单独测试struts2成功 hibernate+spring成功

问题描述 web.xml:  <?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:

粗浅看Struts2和Hibernate框架

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52424578作者:朱培      ID:sdksdk0      邮箱: zhupei@tianfang1314.cn    ------------------