Hibernate错误Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]

      今天写一个东西的时候遇到了这样的错误“Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]”具体的错误信息是这样的

java.lang.ExceptionInInitializerError
     at hicc.cn.exam.util.HibernateUtil.buildSessionFactory(HibernateUtil.java: 19 )
     at hicc.cn.exam.util.HibernateUtil.<clinit>(HibernateUtil.java: 10 )
     at hicc.cn.exam.dao.impl.UserDaoImpl.importList(UserDaoImpl.java: 34 )
     at hicc.cn.exam.dao.impl.UserDaoImplTest.testImportList(UserDaoImplTest.java: 17 )
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39 )
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25 )
     at java.lang.reflect.Method.invoke(Method.java: 597 )
     at org.junit.runners.model.FrameworkMethod$ 1 .runReflectiveCall(FrameworkMethod.java: 44 )
     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 15 )
     at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java: 41 )
     at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java: 20 )
     at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: 28 )
     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 76 )
     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 50 )
     at org.junit.runners.ParentRunner$ 3 .run(ParentRunner.java: 193 )
     at org.junit.runners.ParentRunner$ 1 .schedule(ParentRunner.java: 52 )
     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java: 191 )
     at org.junit.runners.ParentRunner.access$ 000 (ParentRunner.java: 42 )
     at org.junit.runners.ParentRunner$ 2 .evaluate(ParentRunner.java: 184 )
     at org.junit.runners.ParentRunner.run(ParentRunner.java: 236 )
     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java: 46 )
     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java: 38 )
     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java: 467 )
     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java: 683 )
     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java: 390 )
     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java: 197 )
Caused by: 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: 473 )
     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: 284 )
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java: 1842 )
     at hicc.cn.exam.util.HibernateUtil.buildSessionFactory(HibernateUtil.java: 15 )
     ... 26 more
Caused by: java.lang.reflect.InvocationTargetException
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java: 39 )
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java: 27 )
     at java.lang.reflect.Constructor.newInstance(Constructor.java: 513 )
     at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java: 105 )
     ... 35 more
Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for remark in class hicc.cn.exam.vo.User
     at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java: 326 )
     at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java: 320 )
     at org.hibernate.mapping.Property.getGetter(Property.java: 304 )
     at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java: 297 )
     at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java: 155 )
     at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java: 77 )
     ... 40 more

  

在网上搜一下,由于没有仔细看错误信息,那个帖子说的是没有导入javaassist.jar 这个包。但是我已经导入了,以为现在下载的这个struts2 版本没有这个包不能运行。我又拷贝了错误信息看了一下,发现了:“org.hibernate.PropertyNotFoundException: Could not find a getter for remark in class *.*.*.vo.User”,豁然开朗了。因为配置文件或PO类的错误。修改一下能运行了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
这个问题可能是由于缺少相应的依赖或配置导致的。请确保以下几点: 1. 确认你的项目中是否包含了 MyBatis 和 Spring Boot 的依赖。你可以在项目的 pom.xml(如果是 Maven项目)或 build.gradle(如果是 Gradle项目)文件中添加以下依赖: ```xml <!-- Maven依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <!-- Gradle依赖 --> implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' ``` 2. 确保你的配置文件(如 application.yml 或 application.properties)中包含了正确的数据库连接信息和 MyBatis 相关配置。例如,如果你使用的是 MySQL 数据库,可以在配置文件中添加以下内容: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mydatabase username: your-username password: your-password mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.model ``` 3. 如果你使用的是 Spring Boot2.5.x 版本,可能会遇到这个问题。这是因为在这个版本中,`MybatisDependsOnDatabaseInitializationDetector` 的包名发生了变化,所以需要修改配置文件中的相关部分。你可以将 `MybatisDependsOnDatabaseInitializationDetector` 替换为 `org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration`。 ```yaml spring: autoconfigure: exclude: - org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration ``` 如果以上方法仍然无法解决问题,请提供更多的错误信息和项目配置,以便我们能够更好地帮助你解决这个问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值