簡體   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