Mybatis mapping文件中 数据封装类使用内部类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis mapping文件中 数据封装类使用内部类相关的知识,希望对你有一定的参考价值。

在一般的应用中,都会采用ORM 将数据库查出的记录映射为一个实体类,该实体类我们也一般是一个类写在在一个类文件中,但有时候我们会使用内部类,这时候mapping文件配置需注意:

假如该类为:

com.xxx.entity.DataWrapper.InnerEntity

InnerEntity作为DataWrapper的一个公共静态成员,声明时不外乎如下

1、

import com.xxx.entity;

...

DataWrapper.InnerEntity myObject = null;

 

2、

com.xxx.entity.DataWrapper.InnerEntity myObject = null;

 

在Mybatis像如上作为returnType或者paramType是会出现ClassNotFound异常的,这与他的类加载器机制有关,上述类javac编译的内部类结果 是 DataWrapper$InnerEntity.class 文件。

故在配置mapping文件时将 com.xxx.entity.DataWrapper.InnerEntity 改为com.xxx.entity.DataWrapper$InnerEntity ,这样mybatis又可正常加载了。

以上是关于Mybatis mapping文件中 数据封装类使用内部类的主要内容,如果未能解决你的问题,请参考以下文章

mybatis传递多个参数的问题

[mybatis]映射文件_参数处理

MyBatis映射文件

Mybatis结果集封装map类型

mybatis 使用Map封装查询的结果

mybatis返回多结果集