Сохранение свойства в несколько столбцов с помощью iBatis - PullRequest
1 голос
/ 26 ноября 2010

Я ищу решение следующей ситуации. Допустим, у меня есть бизнес-объект. Векторная ссылка на класс / структуру Point.

class Vector{
 int id;
 Point begin;
 Point end;
}

class Point {
 int x;
 int y;
}

Я хочу сохранить начало и конец в той же таблице, что и сам вектор.

table Vectors {
 int id;
 int begin_x;
 int begin_y;
 int end_x;
 int end_y;
}

Я знаю это из мира Hibernate как сопоставление компонентов, но мне не удалось найти похожую концепцию для iBatis. Есть ли способ выразить эту функциональность в файлах сопоставления iBatis?

1 Ответ

0 голосов
/ 09 декабря 2010

В вашем DAO предположим, что вы будете использовать (г / с) эфиры на объектах

    public void saveVector(Vector v) throws DataAccessException
    {
        Map params = new HashMap();
        params.put("id",new Integer(v.id);
        params.put("begin_x",new Integer(v.begin.x);
        params.put("begin_y",new Integer(v.begin.y);
        params.put("end_x",new Integer(v.end.x);
        params.put("end_y",new Integer(v.end.y);
        getSqlMapClientTemplate().insert("Vectors.insertVectors", params);
    }

В файле сопоставления

    <insert id="insertVectors" parameterClass="java.util.Map">
        INSERT INTO
        Vectors(id,begin_x,begin_y,end_x,end_y)
        VALUES
        (#id#,#begin_x#,#begin_y#,#end_x#,#end_y#)
    </insert>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...