以下是网上总结的比较好的,
而我的原因是:hibernate.dialect 没有set,后面的文章会详解。
其他原因,转自:https://blog.51cto.com/zero01/2294152?source=dra
最近将IDEA 2018.1版本更新到了2018.2版本,更新好后跑了一下之前的项目,结果就报错了,这个项目集成了spring data jpa。由于该错误有多种原因导致,在解决该错误的时候也花了一些时间,所以特别记录一下。关键的报错信息如下:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/zero/xunwuproject/config/JpaConfig.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
这个错误有多种原因导致,在网上查了一下, 大概有以下几种原因:
-
实体类的属性对象没有设置setter或者getter。
-
没有导入javassist的jar文件 (javassist-3.15.0-GA.jar什么的)
http://blog.youkuaiyun.com/xiaochangwei789/article/details/7712725
- 实体类中的属性对象名和映射文件的property name不一致。
https://blog.youkuaiyun.com/liuzhengyang1/article/details/23127629
而我这里是第二个原因,缺少javassist的jar包,于是在pom文件中引入:
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.23.1-GA</version>
</dependency>
引入了这个jar包后,启动就正常了。