出现异常: java.lang.IllegalArgumentException: Not an managed type

spring+jpa框架整合出现问题:

从svn checkout项目出来后,把环境搭配好,已经可以把项目在Tomcat中跑起来了

但是在用Junit做单元测试的时候出现问题,一直报错:

java.lang.IllegalStateException: Failed to load ApplicationContext

看完完整的报错信息发现原因是:

Caused by: java.lang.IllegalArgumentException: Not an managed type: class com.csl.mmscm.model.user.Account

原来是jpa找不到实体类,可是我都能在Tomcat中完好跑,照理说应该不用怎么处理了的。

在网上找了两天,终于是发现解决办法了:

原来spring data jpa在applicationContext.xml里面的配置是这样的:

<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"id="entityManagerFactory"><property name="persistenceUnitName" value="persistenceUnit" /><property name="dataSource" ref="dataSource" /><property name="jpaVendorAdapter" ref="jpaVendorAdapter" /><property name="packagesToScan" value="com.csl.mmscm.model.*" /></bean>

这里面引用了persistenceUnit,这个其实就是引用了persistence.xml里面对应的这里面引用了persistenceUnit,原来的persistence.xml配置如下:

<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"><persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL"><properties><property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /><property name="hibernate.connection.driver_class" value="org.gjt.mm.mysqlDriver" /><property name="hibernate.connection.username" value="root" /><property name="hibernate.connection.password" value="!Cascade020" /><property name="hibernate.connection.url" value="jdbc.mysql://localhost:3306/mmscm"/><property name="hibernate.max_fetch_depth" value="3" /><property name="hibernate.show_sql" value="true" /><!--<property name="hibernate.hbm2ddl.auto" value="create-drop"/>--></properties></persistence-unit>
</persistence>

在这里面需要使用一个标签来引入jpa所需要的实体类,改为如下:

<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"><persistence-unit name="persistenceUnit" transaction-type="RESOURCE_LOCAL"><class>com.csl.mmscm.model.user.Account</class><class>com.csl.mmscm.model.user.AccountSearchResult</class><class>com.csl.mmscm.model.user.LoginSession</class><class>com.csl.mmscm.model.user.SysUser</class><class>com.csl.mmscm.model.user.SysUserId</class><class>com.csl.mmscm.model.user.UserAccessId</class><class>com.csl.mmscm.model.user.UserAccessRight</class><class>com.csl.mmscm.model.user.UserAlphaSa</class><class>com.csl.mmscm.model.user.UserSa</class><class>com.csl.mmscm.model.campaign.BatchMms</class><class>com.csl.mmscm.model.campaign.BatchMmsId</class><class>com.csl.mmscm.model.parameter.AccountParam</class><class>com.csl.mmscm.model.parameter.AccountParamId</class><class>com.csl.mmscm.model.parameter.SysParam</class><properties><property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /><property name="hibernate.connection.driver_class" value="org.gjt.mm.mysqlDriver" /><property name="hibernate.connection.username" value="root" /><property name="hibernate.connection.password" value="!Cascade020" /><property name="hibernate.connection.url" value="jdbc.mysql://localhost:3306/mmscm"/><property name="hibernate.max_fetch_depth" value="3" /><property name="hibernate.show_sql" value="true" /><!--<property name="hibernate.hbm2ddl.auto" value="create-drop"/>--></properties></persistence-unit>
</persistence>

修改完成后就没有报错了,单元测试成功,可以使用jpa查询到数据库中的数据。

解决办法是有了,但是具体原因还是不明白,在网上看到有个说法是如果需要Hibernate管理这些实体类,就是需要手动配置。按照原来的配置,可以在Tomcat中运行成功,说明实体类应该是可以自动注入成功的,可是不知道为什么在单元测试中不行,所以需要在persistence.xml手动添加引入。

java.lang.IllegalArgumentException: Not an managed type相关推荐

  1. java.lang.IllegalArgumentException: Not a managed type: class com.** 解决方案

    springboot  添加jpa根据表反向生成实体类后,启动报错如标题,是因为实体类的目录不对,改为启动类所在目录下面的目录即可.记录备忘.

  2. Android插件中使用EventBus出现java.lang.IllegalArgumentException: Expected receiver of type xxx, but got xx

    使用场景 由于所开发的Android项目是个老项目,EventBus使用的还是EventBus2,整个项目是插件化架构,不同插件使用的ClassLoader不同.插件1中有个onEvent方法,用来更 ...

  3. java.lang.IllegalArgumentException: Name for argument type [java.lang.Integer] not available异常

    这个异常的大致意思是:参数类型的名称[java.lang.Integer]不可用,并且在类文件中也找不到参数名称信息. 就是说前端发起的请求的参数和后台接收的参数对应不上,我们项目采用前后端分离前端采 ...

  4. SpringBoot-java.lang.IllegalArgumentException: Not a managed type异常问题解决方法

    见博客:https://blog.csdn.net/heyewu4107/article/details/78942393

  5. Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.INT

    Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.INT ...

  6. Cause: java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.Date

    异常日志: Cause: org.apache.ibatis.builder.BuilderException:Error resolving JdbcType. Cause: java.lang.I ...

  7. Mybatis异常--java.lang.IllegalArgumentException: NO ENUM const class org.apache.ibatis.type.JdbcType.i

    转载:http://www.cnblogs.com/jl29233zx/p/6226522.html Mybatis异常--java.lang.IllegalArgumentException: NO ...

  8. java.lang.IllegalArgumentException: argument type mismatch

    问题: 19-Apr-2022 11:08:37.371 信息 [http-nio-8080-exec-5] com.alibaba.druid.pool.DruidDataSource.info { ...

  9. java.lang.IllegalArgumentException: No converter found for return value of type: class com.sail.comm

    目录 1.背景 2.测试环境 3.分析原因及解决 1.背景 自己使用IDEA的maven搭建一套Spring+SpringMVC+Mybatis+Mysql的环境,结果运行程序时,适用@Respons ...

最新文章

  1. 高精度模板 洛谷Luogu P1932 A+B A-B A*B A/B Problem
  2. Oracle自定义数据类型 1
  3. Django 应用程序 + 模型 + 基本数据访问
  4. python中字典的常用函数_Python字典dict常用方法函数实例
  5. 基于知识的智能体 笔记
  6. numpy数据类型dtype转换
  7. CCF202009-4 星际旅行(100分题解链接)
  8. RPC与Apache Thift
  9. 2015-2016-2 《Java程序设计》项目小组博客
  10. ubunut18.04 pycharm创建快捷方式和右键创建空白文件夹
  11. 声音鉴定-趣味测试-源码
  12. 全站仪数据导入电脑_怎么把全站仪的数据导到电脑上来,并且成图?
  13. Denoise: from image to point cloud
  14. oracle+soacs,第 3 章 使用 C++ 编译器选项
  15. 飞行器中传感器测量原理及测量模型
  16. 启动服务器后台打印系统,服务器打印后台处理
  17. 霍纳法则c语言算法代码,霍纳法则(Horner's rule)
  18. 别做被大公司毁掉的年轻人
  19. 计算机网络营销发展有哪些方面,《网络营销》(PPT124).ppt
  20. git fork 远端仓库协作开发

热门文章

  1. 程序员必备十款开发工具,会用的可以召唤神龙了!
  2. Esp8266 进阶之路25【高级篇】深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。(附带Demo)
  3. 计算机主板供电故障,电脑主板内部电池供电出现问题,会出现哪些故障问题
  4. windows 连接蓝牙耳机失败 解决方法
  5. python 马赛克拼图_使用 python 做到马赛克拼图
  6. 【STM32】数码管显示按键控制舵机转动的角度(二)
  7. 彩信猫 发送彩信失败_在彩信上为人类摆姿势
  8. js 事件回调函数的对象属性说明:clientX、screenX、offsetX、pageX
  9. Win10添加ssh公钥
  10. arcgis_随机数vb脚本