为了账号安全,请及时绑定邮箱和手机立即绑定

mybatis支持返回内部类吗?如果是,该如何实现?

mybatis支持返回内部类吗?如果是,该如何实现?

鸿蒙传说 2019-03-01 10:43:11
1.定义了一个内部类 class Outer{ private String name; class Inner{ private Integer min; private Integer max; } getter... setter... } 2.mybatis实现了对应内部类的resultMap <resultMap id="range" type="com.cheng.test.Outer$Inner"> <result column="min_id" property="min" jdbcType="INTEGER" /> <result column="max_id" property="max" jdbcType="INTEGER" /> </resultMap> 3.最后的结果报异常: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: No constructor found in com.cheng.test.Outer$Inner matching [java.lang.Integer, java.lang.Integer] 4.报的异常是说我缺少构造函数,但是定义类内部类的构造函数也没用.Outer类里,写Inner构造函数会提示错误.请问是哪里有问题? 以上是原问题. 根据jpmonty的答案我实现成功了,就是增加了一个静态声明就解决了. 在mybatis中调用内部类要用$符号,这也是网上查到的,但是没有说明需要使用静态内部类.至于原因,我的猜测是,静态内部类能直接调用new Inner(),而内部类却只能通过new Outer()生成的实例来调用内部类.所以可以通过这种方法实现.
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

用静态内部类可以实现,不过这样用也没啥意义

查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 822 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号