繁体   English   中英

MyBatis select语句,不带resultMap

[英]MyBatis select statement WITHOUT a resultMap

我试图避免在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>

这将毫无问题地映射到域对象(PO​​JO)。 但是,如果我有一个子域对象,那么似乎没有任何信息可以使它起作用。 例如:

<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文件并在界面中使用@批注。

谢谢。

如果Mybatis不“告诉”关系是关联,则无法猜测其属性是否为复杂类型。 可以在XML中定义resultMap时完成。

关于注释,根据有关@One API文档

注解API不支持联接映射。 这是由于Java注释中的限制,不允许循环引用

缺少联接在这里与SQL查询无关,但这是相同的情况。

如果您考虑使用嵌套选择(为什么不使用延迟加载),则可以选择注释。 但是您的方案似乎并不需要/不允许它。

最终,我猜想XML是唯一的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM