2010-11-26 2 views
7

У меня есть POJO классы:Упорство коллекции в объекте с MyBatis

class Ticket { 
    private int id; 
    private double cost; 
    private Date time; 
    private List<Place> places; 

    // Getters and setters here 
} 

class Place { 
    private int row; 
    private int place; 

    // Getters and setters here 
} 

Тогда я создаю один билет и некоторые места:

Ticket ticket = new Ticket(); 
ticket.setCost(58.7); 
ticket.setTime(new Date()); 

Place place1 = new Place(); 
place1.setRow(1); 
place1.setPlace(2); 
ticket.addPlace(place1); 

Place place2 = new Place(); 
place2.setRow(3); 
place2.setPlace(4); 
ticket.addPlace(place2); 

А теперь я хочу, чтобы сохранить его в БД:

session.insert("insertTicket", ticket); 
session.commit(); 

В MapperConfig.xml Я пишу следующие строки:

<insert id="insertTicket" parameterType="Ticket"> 
    INSERT INTO tickets (cost, time) VALUES (#{cost}, #{time}) 
</insert> 

Как я могу сэкономить Список мест в автоматическом режиме? Может ли MyBatis сохранить его для меня? Или мне нужно итературно вручную с foreach и вставьте каждое Место от руки?

Спасибо за любую помощь.

ответ

9

Несмотря на то, что MyBatis поддерживает обратное направление (то есть заполняет список во время запроса с помощью вложенного выбора или из соединения), нет автоматического режима, который вставляет содержащийся список в базу данных.

В соответствии с этим Google Groups discussion вам необходимо вставить элементы списка вручную.

+0

Hm. Нехорошо ... Я думаю, что MyBatis умнее. Существует ли ORM для Java, который может выполнять эту операцию для меня? – 2010-11-27 08:27:41

Смежные вопросы