mybatis中返回resultmap,该map是一个javabean,这个Javabean同时继承了另外一个bean,怎么实现?
要求返回的既有子类中的属性,又有父类中的属性。
我是将父类封装成一个resultmap,子类也封装为一个resultmap,继承父类的resultmap。返回值是子类的resultmap。
其中写的sql语句一直报错“未明确定义列”。我已经试过用别名了。
子类的resultmap
<resultMap id="result_host" extends="result_scan" type="com.cncert.satp.bean.HostScanResultBean">
<id column="host_result_id" property="host_result_id"/>
<result column="host_ip" property="host_ip"/>
<result column="host_port" property="host_port"/>
<result column="vulnerability" property="vulnerability"/>
<result column="tool_name" property="tool_name"/>
<result column="tool_task_id" property="tool_task_id"/>
<result column="result_id" property="result_id"/>
<result column="gmt_create" property="gmt_create"/>
<result column="gmt_modified" property="gmt_modified"/>
</resultMap>
父类的resultmap
<resultMap id="result_scan" type="com.cncert.satp.bean.ScanResultBean">
<id column="result_id" property="resultid"/>
<result column="host_ip" property="resultsource"/>
<result column="create_time" property="createdate"/>
<result column="reliability" property="credibility"/>
<association property="task" javaType="com.cncert.satp.bean.TaskBean">
<id column="task_id" property="taskid"></id>
<result column="task_no" property="taskno"></result>
<result column="task_resource" property="taskresource"></result>
<result column="strategy_id" property="strategyid"></result>
<result column="task_type" property="tasktype"></result>
<result column="task_description" property="taskdescription"></result>
<result column="task_status" property="taskstatus"></result>
<result column="start_time" property="starttime"></result>
<result column="finish_time" property="finishtime"></result>
<result column="tool_name" property="toolname"></result>
<result column="create_time" property="createtime"></result>
<result column="gmt_create" property="gmt_create"></result>
<result column="gmt_modified" property="gmt_modified"></result>
</association>
</resultMap>
<sql id="result_sql">
result_id,task_id,reliability,result_status,create_time
<select id="getCodeResult" parameterType="int" resultMap="result_code">
select <include refid="result_sql"/>,source_result.*
from source_result,scan_result
where scan_result.result_id=source_result.result_id
and scan_result.task_id=#{id}
</select>