【问题标题】:How do you handle sql mapping for multiple tables in ibatis and javaibatis和java中多表的sql映射如何处理
【发布时间】:2010-12-06 06:21:47
【问题描述】:

我正在尝试将 Ibatis 与 GWT 一起使用,并且我有这种情况,我有数据库表 Airport、Terminals 和 Flights。一个机场可以有不同的航站楼。一个航站楼可以有一个机场和多个航班。一个航班可以有一个航站楼。所以表结构是这样的。

机场 -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 映射会是什么样子。我感到困惑的是结果集是表的组合,因此结果集不是三个表中任何一个的模型对象。

【问题讨论】:

  • 一种选择是创建视图/物化视图。

标签: java ibatis


【解决方案1】:

创建一个自定义值对象 (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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2010-09-19
    • 2010-12-19
    • 2018-12-17
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多