解决集成jpa时报错无法创建少导入entityManagerFactory的问题

解决集成jpa时报错无法创建少导入entityManagerFactory的问题

最近将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

这个错误有多种原因导致,在网上查了一下, 大概有以下几种原因:

  1. 实体类的属性对象没有设置setter或者getter。

    http://stackoverflow.com/questions/18042247/could-not-get-constructor-for-org-hibernate-persister-entity-singletableentitype

  2. 没有导入javassist的jar文件 (javassist-3.15.0-GA.jar什么的)

    http://blog.csdn.net/xiaochangwei789/article/details/7712725

  3. 实体类中的属性对象名和映射文件的property name不一致。

    https://blog.csdn.net/liuzhengyang1/article/details/23127629

而我这里是第二个原因,缺少javassist的jar包,于是在pom文件中引入:

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.23.1-GA</version>
</dependency>

引入了这个jar包后,启动就正常了。

原文地址:http://blog.51cto.com/zero01/2294152

时间: 2024-10-07 15:21:40

解决集成jpa时报错无法创建少导入entityManagerFactory的问题的相关文章

解决连接mysql时报错&quot;Can&#39;t connect to local MySQL server through socket &#39;/tmp/mysql.sock&#39;&quot;

命令行连接mysql时,报了“Can't connect to local MySQL server through socket '/tmp/mysql.sock'”的错误:用Navicat连接是报62号错误. 首先确定我本机是装了mysql的 尝试用安全模式启动mysql,命令行执行: /usr/local/bin/mysqld_safe 完了之后运行mysql,成功了. 解决连接mysql时报错"Can't connect to local MySQL server through soc

如何解决登录OneDrive时报错Error 0x8004de40导致无法登陆?

如何解决登录OneDrive时报错Error 0x8004de40导致无法登陆? ?Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk 工程师实战培训课程:https://edu.51cto.com/lecturer/733218.html轻松进外企:IT Helpdesk工程师实战自学之路:https://blog.51cto.com/lander/24130

如何解决部署SFB时报错End Error Message from rewrite_2.0_rt?

如何解决部署SFB时报错End Error Message from rewrite_2.0_rtw_x64.msi? ?Lander Zhang 专注外企按需IT运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk 工程师实战培训课程:https://edu.51cto.com/lecturer/733218.html轻松进外企:IT Helpdesk工程师实战自学之路:https://blog.51cto.c

解决pytest运行时报错ModuleNotFoundError

封装代码后通过pytest运行时报错模块没找到错误. 导入模块前面加上这2句话解决 No modlue name '模块名'的报错. import os,sys sys.path.append(os.getcwd())            #告诉pytest运行前先检索当前路径 报错原因pytest运行时没有检索当前目录自己导入的模块. 报错截图: 原文地址:https://www.cnblogs.com/xiamaojjie/p/11515708.html

解决git clone时报错:The requested URL returned error: 401 Unauthorized while accessing

版本问题,最直接的解决办法就是重新编辑安装git吧: 1. 下载:# wget -O git.zip https://github.com/git/git/archive/master.zip 2. 解压:# unzip git.zip 3. 进入git目录:# cd git-master 4. 编译安装: autoconf ./configure --prefix=/usr/local make && make install 5. 最后别忘了删掉旧的git,并把新版本的git建立软链接

解决 yum安装时报错 Error: Protected multilib versions: 报错

系统中缺少一个lib库 libz.so.1文件,使用yum安装会自动找到相关的rpm包,如下命令 # yum -y install libz.so.1 Resolving Dependencies --> Running transaction check ---> Package zlib.i686 0:1.2.3-29.el6 will be installed --> Finished Dependency Resolution Error: Protected multilib

解决Discuz安装时报错“该函数需要 php.ini 中 allow_url_fopen 选项开启…”

开启php的fsockopen函数 —— 解决DZ论坛安装问题“该函数需要 php.ini 中 allow_url_fopen 选项开启.请联系空间商,确定开启了此项功能 在安装dz论坛时遇到因为fsockopen()函数问题无法进入下一步,安装错误显示“该函数需要 php.ini 中 allow_url_fopen 选项开启.请联系空间商,确定开启了此项功能”,经过分析,总结了3个解决这个问题的办法: 1.首先查看php是否有禁用相关函数 找到php.ini ,打开,查找“disable_fu

解决卸载Python时报错问题:No Python installation was detected

解决方法: 1.打开控制面板>> 删除程序,找到Python,右键点击更改, 点击Repair (Uninstall的上一个选项): 2.上面这步做完,后还要打开之前开的控制面板>> 删除程序,找到Python,右键点击卸载,即可正常卸载了. 网上有人说应该先打开C:\Users\Administrator\AppData\Local\Programs: 删除Python文件夹:我这里显示删除不了Python,我是卸载Python之后才能删除的.我的方法就是先修复Python再卸载

解决Oracle安装时报错“SID已在使用”办法

1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除 5. 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口. 6. 运行