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

页面显示错误: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">
		<!-- 设置主键 -->
		<id	name="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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值