当前位置: 首页 > 面试题库 >

使用MyBatis持久化对象集合

唐博文
2023-03-14
问题内容

我有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 手动进行迭代,然后手动插入每个 地方

谢谢你的帮助。


问题答案:

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

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



 类似资料:
  • Hibernate 认为持久化类(persistent class)新实例化的对象是瞬时(Transient)的。我们可通过将瞬时(Transient)对象与 session 关联而把它变为持久的(Persistent)。 DomesticCat fritz = new DomesticCat(); fritz.setColor(Color.GINGER); fritz.setSex('M');

  • 问题内容: 我试图在spring启动时将JSON对象存储在MySQL数据库中。我知道我做错了事,但是我无法弄清楚到底是什么原因,因为我对Spring还很陌生。 我有一个休息端点,在这里我通过HTTP PUT获取以下JSON对象,并且需要将其存储在数据库中,以便用户以后可以通过HTTP GET获取它。 请注意,在上述情况下,对象 中* 键 的 数量 可能会有所不同,由于该要求,我正在使用a 来捕获控

  • 问题内容: 以下是对问题的后续问题: 我正在使用version 。如果所有成员变量都是基本类型,即使使用和注释,参数的名称与成员变量的名称不完全匹配,我也可以保留该对象。 但是,当我尝试保留包含其他对象的对象时,我得到了提示。我的问题: 这是错误,还是我做错了什么? 为了使我可以正确地持久化包含对象的对象,需要进行哪些更改? 。 我和班级如下: 更新:奇怪的是,将注释中的字符串更改为“属性”以外的

  • 问题内容: 我对学习Node and Express并不陌生,但我仍在尝试用express围绕代码流。假设我们在session.js中有如下代码: 假设用户是必需的mongo模式。我发现奇怪的是session.user分配: 由于req变量在重定向后将超出范围,但是我们显然是在执行此操作以保留用户数据,因此我需要弄清楚以下哪种情况描述了正在发生的情况。(A)被分配给req参数的参数(在调用回调时)

  • 我有一个简单的JPA存储库,看起来如下所示: 和两个有一个单子映射的类,如下所示: . 现在,我知道我可以很容易地编辑和持久化一个像这样的用户实例: 但是,在没有指向实例的指针的上下文中,如何持久化实例,f.I.: 我可以只调用吗? 我是否需要自动连接另一个存储库()并在其上调用.save()?

  • 1. 前言 本节课和大家聊聊持久化对象的 3 种状态。通过本节课程,你将了解到: 持久化对象的 3 种状态; 什么是对象持久化能力。 2. 持久化对象的状态 程序运行期间的数据都是存储在内存中。内存具有临时性。程序结束、计算机挂机…… 内存中的数据将不复存在。 重要的数据,需要使用持久化技术将数据保存到永久性设备上。Hibernate 能够通过 PO(持久化对象) 将数据持久化到数据库。 Hibe