Pregunta

Tengo clases POJO:

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
}

A continuación, se crea un ticket y en algunos lugares:

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);

Y ahora quiero guardarlo en DB:

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

En MapperConfig.xml escribo estas líneas:

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

¿Cómo puedo ahorrar Lista de lugares en el modo automático? MyBatis no puede guardarlo para mí? O necesito iterar manualmente con foreach e inserte cada Lugar a mano?

Gracias por cualquier ayuda.

¿Fue útil?

Solución

A pesar de que MyBatis es capaz de soportar la dirección inversa (es decir, llenado de la lista durante una consulta con una select anidada o de una combinación), no hay modo automático que inserciones de la lista que contiene en la base de datos.

De acuerdo con esta Google Grupos de discusión usted tiene para insertar los elementos de la lista manualmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top