我正在尝试使用带有GWT的Ibatis,我有这个场景,我有数据库表机场,终端和航班。机场可以有不同的终端。一个航站楼可以有一个机场和许多航班。一个航班可以有一个航站楼。所以表结构看起来像这样。
机场 -ID -名称 -terminal_id
端子 -ID -名称 -flight_id
航班 -ID -航空公司 -terminal_id
我的选择语句如下所示
SELECT airport.name AS Airport,
terminals.name AS Terminal,
flights.airline,
FROM airport,
terminals,
flights
WHERE airport.terminal_id = terminals.id
AND terminals.flight_id = flights.id;
获取此结果的sql映射是什么样的?我感到困惑的地方是结果集是表的组合,因此结果集不是三个表中任何一个表的模型对象。
答案 0 :(得分:4)
根据需要创建自定义值对象(vo)。
<sqlMap namespace="Arrival">
<resultMap id="Arrival" class="com.flight.vo.Arrival">
<result property="airport" column="Airport" />
<result property="terminal" column="Terminal" />
<result property="airline" column="airline"/>
</resultMap>
<select id="retrieveAllArrivals" resultMap="Arrival.Arrival" >
select airport.name as Airport, terminals.name as Terminal, flights.airline
FROM airport, terminals, flights
WHERE airport.terminal_id = terminals.id
AND terminals.flight_id = flights.id
</select>
</sqlMap>