MyBatis中的多种返回类型?

时间:2016-01-09 20:51:11

标签: java orm mybatis

我有两个A和B类,每个都有很多字段,还有一个表包含所有这些字段的值。我试图制作<select><resultMap>元素,但这些元素会返回A类和B类对象列表。

到目前为止,我发现的唯一(不那么干净)解决方案是只实现与一列相关联的typeHandler(例如,表的第一列),并在该代码中创建我需要的两个对象读取传递给类型处理程序的ResultSet中的所有列,而不仅仅是作为String传递给类型处理程序的列名。

使用结果图是否有更清洁的解决方案? (注意:我不想对我的表进行分区以匹配两种对象类型)。

1 个答案:

答案 0 :(得分:1)

通过使用关联可以实现您的目的:查看Nested Results for Association

的文档
<resultMap id="pairResultMap" type="Pair">
    <association property="a"  resultMap="aResultMap" />
    <association property="b" javaType="B">
        <!-- define mapping here -->
    </association> 
</resultMap>
<resultMap id="aResultMap" type="A">            
    <!-- define mapping here -->
</resultMap>

您可以直接定义“子”结果图(B)或引用它(A)。