سؤال

لدي فصول 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
}

ثم أقوم بإنشاء تذكرة واحدة وبعض الأماكن:

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

والآن أريد حفظه في DB:

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

في MapperConfig.xml أكتب هذه السطور:

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

كيف يمكنني حفظ قائمة الأماكن في الوضع التلقائي؟ هل يمكن لـ MyBatis أن يحفظها من أجلي؟ أو أحتاج إلى التكرار يدويًا foreach وأدخل كل مكان باليد؟

شكرا على اي مساعدة.

هل كانت مفيدة؟

المحلول

على الرغم من أن MyBatis قادر على دعم الاتجاه العكسي (أي ملء القائمة أثناء استعلام مع اختيار متداخل أو من Join) ، لا يوجد وضع تلقائي يقوم بإدراج القائمة المحتوية في قاعدة البيانات.

حسب هذا مناقشة مجموعات جوجل يجب عليك إدراج عناصر القائمة يدويًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top