小编典典

使用MyBatis持久化对象集合

sql

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

现在,我想将其保存到数据库:

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

在MapperConfig.xml中,我这样写:

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

如何以自动模式保存 列表位置 ?MyBatis可以为我保存吗?还是我需要使用 foreach 手动进行迭代,然后手动插入每个 地方

谢谢你的帮助。


阅读 288

收藏
2021-03-23

共1个答案

小编典典

即使MyBatis能够支持相反的方向(即在查询过程中使用嵌套选择或联接填充列表),也没有自动模式将包含列表插入数据库。

根据此Google网上论坛讨论,您必须手动插入列表元素。

2021-03-23