今天遇到了这么个问题:
<span style="font-size:14px;">16:24:35.471 [http-nio-8080-exec-2] ERROR org.hibernate.proxy.pojo.javassist.JavassistProxyFactory - HHH000142: Javassist Enhancement failed: com.bean.Role
java.lang.ClassCastException: com.bean.Role_$$_javassist_6 cannot be cast to javassist.util.proxy.Proxy</span>
经过研究发现:数据库consumer表中有一个role表的外键:CON_ROL_ID (consumer和role是两个类)
在用hibernate自动生成的实体类中,把外键CON_ROL_ID设置成了role类:如下图:
其相应的映射文件为:
这样在执行hql语句的时候,就会出现代理错误。需要把实体类和映射文件中的role类换成实际表中的属性类就可以了。具体修改如下:
修改后的映射文件:
这样问题就完美的解决了。