gpt4 book ai didi

java - 在 MyBatis 中为每一行结果集创建一个单独的对象

转载 作者:行者123 更新时间:2023-11-29 02:58:04 25 4
gpt4 key购买 nike

我正在使用 MyBatis 查询数据库。我试图将结果分离到不同的对象中,但 MyBatis 正在组合结果。我的意思是,当我尝试如下所述映射结果时,我得到了 2 Make 的列表。对象与丰田有 3 Model models 中的对象列表和本田有 2 Model models 中的对象列表。

相反,我想获得一个包含 5 个对象的列表,每个对象都有 1 个 Model models 中的对象列表。

有人能帮我吗?

我有如下 2 个 POJO

class Make {
long makeId;
String makeName;
List<Model> models;

// Getter and setters
}

class Model {
long modelId;
String modelName;
}

我有一个查询以下面的格式提取结果。

enter image description here

我的结果集看起来像

<resultMap type='Make' id='resultMap'>
<id property='makeId' column='make_id' />
<result property='makeName' column='make_name' />
<collection property="models" ofType="Model" javaType="list">
<id property='modelId' column='model_id' />
<result property='modelName' column='model_name' />
</collection>
</resultMap>

最佳答案

如果我没理解错的话,你基本上是想识别父对象Make通过 make_id 的复合键和 model_id .

下面的结果映射可能会返回您期望的结果。

<resultMap type='Make' id='resultMap'>
<id property='makeId' column='make_id' />
<id column="model_id" /><!-- added -->
<result property='makeName' column='make_name' />
<collection property="models" ofType="Model" javaType="list">
<id property='modelId' column='model_id' />
<result property='modelName' column='model_name' />
</collection>
</resultMap>

通过省略 property来自 <id /> 的属性, 列 model_id未映射到 Make , 但用于识别它。

关于java - 在 MyBatis 中为每一行结果集创建一个单独的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59491306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com