我试图避免在MyBatis中使用resultMap(或者最好不使用XML)。
我有以下工作:
<select id="getAllSales" resultType="Sales">
SELECT TOP 100
ID as "id",
PLANE as "plane",
PLANE_TYPE as "plane_type"
FROM SALES
</select>
这会毫无问题地映射到域对象(POJO)。但是,如果我有一个子域对象,那么似乎没有任何信息如何使这项工作。例如:
<select id="getAllSales" resultType="Sales">
SELECT TOP 100
ID as "id",
PLANE as "plane.type",
PLANE_TYPE as "plane.type.serial_num"
FROM SALES
</select>
这不会映射到resultMap =“Sales”属性(Sales对象是父对象,包含“Plane”类型,或者更具体地说是List类型。
关于如何摆脱在XML文件中使用resultMap的任何建议或想法?
更可取的是,完全放弃XML文件并在界面中使用@注释。
谢谢。
答案 0 :(得分:0)
关于注释,根据API documentation关于@One
:
通过Annotations API不支持join映射。这是因为 Java Annotations中的限制,不允许循环 参考
缺少连接是SQL查询在这里无关紧要,但这是相同的情况。
如果您考虑使用嵌套选择(为什么不使用延迟加载),注释将是一个选项。但你的方案似乎并不需要/允许它。
最终,我猜XML是唯一的方法。