Persister collection objet avec mybatis
-
28-09-2019 - |
Question
J'ai des classes 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
}
Alors je crée un billet et certains endroits:
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);
Et maintenant, je veux l'enregistrer sur DB:
session.insert("insertTicket", ticket);
session.commit();
Dans MapperConfig.xml je vous écris ces lignes:
<insert id="insertTicket" parameterType="Ticket">
INSERT INTO tickets (cost, time) VALUES (#{cost}, #{time})
</insert>
Comment puis-je enregistrer Liste des lieux en mode automatique? Est-ce que mybatis peut l'enregistrer pour moi? Ou je dois itérer avec foreach et insérer tous les La place la main?
Merci pour toute aide.
La solution
Même si mybatis est capable de supporter le sens inverse (à savoir le remplissage de la liste lors d'une requête avec un select imbriquée ou d'une jointure), il n'y a pas de mode automatique qui insère la liste contenant dans la base de données.
Selon cette Google Groupes de discussion vous à insérer les éléments de la liste manuellement.