通过Hibernate使用表格存储的JDBC驱动查询数据时提示Unable to instantiate default tuplizer错误

问题描述

通过Hibernate使用表格存储的JDBC驱动查询数据时,出现如下错误:

Exception in thread "main" org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
  at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:108)
  at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)
  at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
  at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)
  at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)
  at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
  at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
  at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)

问题原因

缺少javassist-x.x.x.jar包。

解决方案

您可以通过以下两种方式安装javassist-x.x.x.jar包。

  • 下载javassist安装包(即javassist-x.x.x.jar)并导入到项目中。具体下载路径请参见javassist安装包。 javassist-x.x.x.jar中的x.x.x表示javassist的版本号,请根据实际下载所需版本的安装包。

  • Maven项目中加入依赖项

    Maven工程的pom.xml中加入相应依赖即可。此处以3.15.0-GA版本为例,在<dependencies>内加入如下内容:

    <!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.15.0-GA</version>
    </dependency>