2017-02-27 77 views
0

我試圖避免在MyBatis中使用resultMap(或者最好不使用XML)。MyBatis select語句不帶結果映射

我有以下工作:

 <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 =「銷售」屬性映射(銷售對象是父對象和包含「平面」型,或者更具體列表類型

任何建議。或者對如何使用XML文件中的一個resultMap脫身的想法?

甚至更​​加理想,是從完全的XML文件中消失,並在界面中使用@註釋。

謝謝。

回答

0

如果沒有「告訴」關係是關聯,Mybatis無法猜測對象屬性是複雜類型。在XML中定義resultMap時可以完成此操作。

關於註釋,根據API documentation@One:經由所述註解API不支持

加入映射。這是由於在 的Java註解的限制,不允許循環 引用

加入的缺失是SQL查詢是這裏無關緊要,但是這是同樣的情況。

如果您考慮使用嵌套選擇(爲什麼不使用延遲加載),註釋將是一個選項。但你的計劃似乎並不需要/允許它。

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