![](/img/trans.png)
[英]Passing a non-column parameter in a MyBatis ResultMap to a nested select
[英]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>
這將毫無問題地映射到域對象(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文件並在界面中使用@批注。
謝謝。
如果Mybatis不“告訴”關系是關聯,則無法猜測其屬性是否為復雜類型。 可以在XML中定義resultMap時完成。
關於注釋,根據有關@One
API文檔 :
注解API不支持聯接映射。 這是由於Java注釋中的限制,不允許循環引用
缺少聯接在這里與SQL查詢無關,但這是相同的情況。
如果您考慮使用嵌套選擇(為什么不使用延遲加載),則可以選擇注釋。 但是您的方案似乎並不需要/不允許它。
最終,我猜想XML是唯一的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.