hibernate - Hibernate 和 Netbeans 中的 Javassist ClassCastException

标签 hibernate glassfish classcastexception javassist netbeans-8

有人可以帮我调查一下这个问题,可能发生了什么导致该应用程序生成此错误。我正在按照本教程使用 Hibernate in Netbeans 。到达“from Film”这一行后,根据教程将执行测试读取 Film 表的记录,但结果是以下错误。我在谷歌上搜索了该怎么做,到目前为止我所看到的只是据报道 javassist jar 文件可能存在于不同的目录中。一个在 Hibernate (Hibernate 4.x-javassist-3.15.0.GA) 目录中,我发现这是真的,另一个在 glassfish (Glassfish Server 4) 目录中。我尝试在 glassfish lib 目录中搜索它,但似乎不存在类似的东西。

java.lang.ClassCastException: dvdstore.Language_$$_javassist_4 cannot be cast to javassist.util.proxy.ProxyObject
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:147)
    at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.getProxy(JavassistProxyFactory.java:71)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:631)
    at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3737)
    at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:360)
    at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:281)
    at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152)
    at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090)
    at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1038)
    at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:630)
    at org.hibernate.type.EntityType.resolve(EntityType.java:438)
    at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139)
    at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982)
    at org.hibernate.loader.Loader.doQuery(Loader.java:857)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.doList(Loader.java:2542)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
    at org.hibernate.loader.Loader.list(Loader.java:2271)
    at org.hibernate.hql.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:940)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)

项目的 jar 列表。 The list of jar files for the project enter image description here

最佳答案

您使用的 javassist 版本太旧。对于 Hibernate 4,您需要一个 javassist 版本 newer than 3.16this related question 中讨论了同样的问题。 。考虑使用 Maven 或 Gradle 等构建工具来构建您的项目。这些工具负责为您解决传递依赖关系,以便您可以避免此类版本冲突。

关于hibernate - Hibernate 和 Netbeans 中的 Javassist ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215917/

相关文章:

java - org.hibernate.SQLQuery 输出到对象

java - Glassfish 中的 lib 文件夹中的文件夹有什么用,应该如何使用它们?

maven - glassfish 部署期间发生错误 - 此处没有默认名称的 Web 组件

hibernate - Grails GORMS 查找集合属性不为空的所有内容

java - Spring 错误 - NoSuchBeanDefinitionException :SessionFactory

java - 在插入表之前清理数据

java - 错误 404 Jersey Tomcat Eclipse Web 服务

java - Caused by : java. lang.ClassCastException : java. sql.Timestamp无法转换为java.sql.Date

java - 为什么生成 javadocs 时会出现 ClassCastException?

Android:将标题 View 添加到 ExpandableListView 时出现 ClassCastException