javassist_0 cannot be cast to javassist.util.proxy.Proxy

来源:互联网 发布:根据package.json安装 编辑:程序博客网 时间:2024/06/05 05:37

页面显示错误:ERROR org.hibernate.proxy.pojo.javassist.JavassistProxyFactory - HHH000142: Bytecode enhancement failed: cn.myssh.client.entity.Client

console上带的错误:cn.myssh.client.entity.Client_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy


今天在进行级联删除时,操作之后,再运行服务器,点开Contact页面,就成这样了。

之前有一个Contact表中的属性名,从custId更改成clientId,然后进行级联删除时还没出现问题。

现在进行一次级联删除后就出现问题了。

后来发现是这样的,我在进行小修改的时候,不小心将Client.hbm.xml中的这个内容删除了,就出现了这个内容。

lazy="false"

<class name="cn.myssh.client.entity.Client" table="t_client" lazy="false"><!-- 设置主键 --><idname="cID" column="cID" ><!-- 设置自动生成 --><generator class="native"></generator></id><property name="clientName" column="clientName"></property><property name="clientDesc" column="clientDesc"></property><property name="clientAddress" column="clientAddress"></property><property name="clientPrice" column="clientPrice"></property><!-- 客户与联系人的关联 --><!-- 取消双向维护外键,在 "一"的一方设置,加入 inverse="true"来取消维护  --><set name="contactSet" inverse="true" cascade="delete"><key column="custId" /><!-- 在联系人表中的外键名称 --><one-to-many class="cn.myssh.contact.entity.Contact" /></set></class>

在之前都好好的是因为自己没注意到这个地方,然后删除了。

我的环境是这样的。

一对多的环境,

Client表(一)

Contact表(多)

这个lazy="false"是写在Client.hbm.xml表中的,是延时加载的作用,当真正要调用的时候再去进行加载。我就不多说它的作用,还是说回这个的解决方法。

1、在Client(一)的映射参数文件(Client.hbm.xml)中添加上这个代码,可以解决,但是有的情况不适用延时加载的,那样就不适用这个了。就可以看一下你是否有第2的情况 。


2、确认一下自己的jar包中是否有两个javassist.jar包,像我就有这个情况了。将其中一个删除了,那样即使不加上面的代码,也不会出现上面的异常了。

有两个javassist.jar包


阅读全文
0 0