org.hibernate.InstantiationException: No default constructor for entity
来源:互联网 发布:java第三方服务器ftp 编辑:程序博客网 时间:2024/04/26 20:25
在写struts2和hibernate结合应用项目的时候,出现500问题,原因是没有查询成功。
于是用Junit测试了查询,执行@Test时候报错了。错误代码如下:
javax.persistence.PersistenceException: org.hibernate.InstantiationException: No default constructor for entity: : Entity.UserEntity
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1419)
at org.hibernate.query.internal.AbstractProducedQuery.uniqueResult(AbstractProducedQuery.java:1453)
at Entity.UserEntityTest.testHQL(UserEntityTest.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
at org.junit.runner.JUnitCore.run(JUnitCore.java:130)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.hibernate.InstantiationException: No default constructor for entity: : Entity.UserEntity
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:85)
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:105)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:733)
at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:4740)
at org.hibernate.internal.SessionImpl.instantiate(SessionImpl.java:1617)
at org.hibernate.internal.SessionImpl.instantiate(SessionImpl.java:1601)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1658)
at org.hibernate.loader.Loader.getRow(Loader.java:1556)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:740)
at org.hibernate.loader.Loader.processResultSet(Loader.java:985)
at org.hibernate.loader.Loader.doQuery(Loader.java:943)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349)
at org.hibernate.loader.Loader.doList(Loader.java:2615)
at org.hibernate.loader.Loader.doList(Loader.java:2598)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430)
at org.hibernate.loader.Loader.list(Loader.java:2425)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:375)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1481)
at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1441)
at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1410)
... 21 more
org.hibernate.TransactionException: Transaction was marked for rollback only; cannot commit
tarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
...
可以看到这一句:javax.persistence.PersistenceException: org.hibernate.InstantiationException:No default constructor for entity: : Entity.UserEntity
说的是hibernate创建实例化对象出错,在UserEntity这个实体类里面没有默认构造函数:No default constructor。
所以hibernate在创建实体类对象时需要一个默认的无参构造函数,原因如下:
hibernate需要无参构造函数进行反转,因为若要生成类的实例的话,hibernate根本不需要知道这个类中有什么参数属性,用无参的构造函数是最简便的。
如果在实体类中写了带参数的构造函数,就需要手动添加无参构造器。
- org.hibernate.InstantiationException: No default constructor for entity
- SpringBoot 集成Kotlin : org.hibernate.InstantiationException: No default constructor for entity: : com.easy.kotlin.entity.People
- org.hibernate.InstantiationException: No default constructor for entity: cn.gov.entity.Book
- Hibernate报错:org.hibernate.InstantiationException: No default constructor for entity: ,类在下面
- Hibernate出现org.hibernate.InstantiationException: No default constructor for entity解决方法
- org.springframework.orm.hibernate3.HibernateSystemException: No default constructor for entity: ****
- No default constructor for entity: org.ht.pojo.Dept
- hibernate:No default constructor for entity: hibernate.Dept
- Hibernate报错:No default constructor for entity xxx
- No default constructor for entity解决
- No default constructor for entity问题分析与解决方法
- No default constructor for entity问题分析与解决
- No default constructor for entity问题分析与解决
- Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
- Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
- could not get constructor for org.hibernate.persister.entity.SingleTableEntittyPersister
- Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
- hibernate错误org.hibernate.AnnotationException: No identifier specified for entity:
- Nginx简介及使用Nginx实现负载均衡的原理
- 在线离线QQ的各种样子
- POJ3356-AGTC(编辑距离)
- 格雷码(多种方法含递归)
- MySQL数据库分区(Database partition)
- org.hibernate.InstantiationException: No default constructor for entity
- 剑指offer_连续子数组的最大和
- 查看多媒体文件速度优化升级
- 我的世界 粘液块科技 配方计算 配方表
- android自定义view之九宫格解锁
- 查询另一张表中某字符出现次数 sql
- C++经典书籍
- wamp环境下,PHP中安装redis
- kafka produce源码研究