java.lang.IllegalArgumentException: Not an managed type
出现异常: 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相关推荐
- java.lang.IllegalArgumentException: Not a managed type: class com.** 解决方案
springboot 添加jpa根据表反向生成实体类后,启动报错如标题,是因为实体类的目录不对,改为启动类所在目录下面的目录即可.记录备忘.
- Android插件中使用EventBus出现java.lang.IllegalArgumentException: Expected receiver of type xxx, but got xx
使用场景 由于所开发的Android项目是个老项目,EventBus使用的还是EventBus2,整个项目是插件化架构,不同插件使用的ClassLoader不同.插件1中有个onEvent方法,用来更 ...
- java.lang.IllegalArgumentException: Name for argument type [java.lang.Integer] not available异常
这个异常的大致意思是:参数类型的名称[java.lang.Integer]不可用,并且在类文件中也找不到参数名称信息. 就是说前端发起的请求的参数和后台接收的参数对应不上,我们项目采用前后端分离前端采 ...
- SpringBoot-java.lang.IllegalArgumentException: Not a managed type异常问题解决方法
见博客:https://blog.csdn.net/heyewu4107/article/details/78942393
- 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 ...
- 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 ...
- 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 ...
- java.lang.IllegalArgumentException: argument type mismatch
问题: 19-Apr-2022 11:08:37.371 信息 [http-nio-8080-exec-5] com.alibaba.druid.pool.DruidDataSource.info { ...
- 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 ...
最新文章
- 高精度模板 洛谷Luogu P1932 A+B A-B A*B A/B Problem
- Oracle自定义数据类型 1
- Django 应用程序 + 模型 + 基本数据访问
- python中字典的常用函数_Python字典dict常用方法函数实例
- 基于知识的智能体 笔记
- numpy数据类型dtype转换
- CCF202009-4 星际旅行(100分题解链接)
- RPC与Apache Thift
- 2015-2016-2 《Java程序设计》项目小组博客
- ubunut18.04 pycharm创建快捷方式和右键创建空白文件夹
- 声音鉴定-趣味测试-源码
- 全站仪数据导入电脑_怎么把全站仪的数据导到电脑上来,并且成图?
- Denoise: from image to point cloud
- oracle+soacs,第 3 章 使用 C++ 编译器选项
- 飞行器中传感器测量原理及测量模型
- 启动服务器后台打印系统,服务器打印后台处理
- 霍纳法则c语言算法代码,霍纳法则(Horner's rule)
- 别做被大公司毁掉的年轻人
- 计算机网络营销发展有哪些方面,《网络营销》(PPT124).ppt
- git fork 远端仓库协作开发
热门文章
- 程序员必备十款开发工具,会用的可以召唤神龙了!
- Esp8266 进阶之路25【高级篇】深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。(附带Demo)
- 计算机主板供电故障,电脑主板内部电池供电出现问题,会出现哪些故障问题
- windows 连接蓝牙耳机失败 解决方法
- python 马赛克拼图_使用 python 做到马赛克拼图
- 【STM32】数码管显示按键控制舵机转动的角度(二)
- 彩信猫 发送彩信失败_在彩信上为人类摆姿势
- js 事件回调函数的对象属性说明:clientX、screenX、offsetX、pageX
- Win10添加ssh公钥
- arcgis_随机数vb脚本