Как вы обрабатываете сопоставление sql для нескольких таблиц в ibatis и java - PullRequest
2 голосов
/ 06 декабря 2010

Я пытаюсь использовать Ibatis с GWT, и у меня есть этот сценарий, у меня есть таблицы базы данных Аэропорт, Терминалы и Полеты.Аэропорт может иметь разные терминалы.Терминал может иметь один Аэропорт и много рейсов.И у рейса может быть один терминал.Таким образом, структура таблицы выглядит следующим образом.

Аэропорт -id -name -terminal_id

Терминалы -id -name -flight_id

Полеты -id -airline -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 для получения этого результата.Я запутался, когда набор результатов представляет собой комбинацию таблиц, поэтому набор результатов не является модельным объектом ни для одной из трех таблиц.

1 Ответ

4 голосов
/ 07 декабря 2010

Создайте объект значения (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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...