gpt4 book ai didi

java - 使用 MyBatis 返回对象内部对象的列表

转载 作者:搜寻专家 更新时间:2023-11-01 01:51:08 25 4
gpt4 key购买 nike

我在使用 MyBatis 时在另一个对象中返回一个对象列表时遇到了问题。我的主要对象如下所示:

private Long id;

private String symbol;

private List<TypePermission> typePermissions;

我的映射器看起来像这样

<resultMap type="CalendarType" id="calendarTypeMap">
<result column="id" property="id"/>
<result column="symbol" property="symbol"/>
<collection property="TypePermissions" resultMap="TypePermissions"/>
</resultMap>

<resultMap id="TypePermissions" type="TypePermission">
<result property="roleId" column="roleId"/>
<result property="permissionSymbol" column="permissionSymbol"/>
</resultMap>

我的目标是得到这样的对象:

content:[
"id":id,
"symbol":symbol,
"TypePermissions":{
"roleId":roleId,
"permissionSymbol":permissionSymbol
}
]

当我执行 sql 查询时,出现以下错误 cannot find symbol TypePermissions,因为主 SELECT 尝试选择 TYPEPERMISSIONS、ID、SYMBOL 等行

我在网上搜索过,但没有找到任何有用的东西。你能帮我指出我做错了什么吗?

最佳答案

请发布您选择的代码段,我认为这样可以:

<select id="selectCalendarType" parameterType="int" resultMap="calendarTypeMap">
SELECT c.id,
c.symbol
t.roleId,
t.permissionSymbol
FROM CalendarType c
LEFT JOIN TypePermission t ON c.id = t.c_id
WHERE c.id = #{id}
</select>

我想你会得到的实际上是这样的:

content:{
"id":id,
"symbol":symbol,
"TypePermissions":[{
"roleId":roleId,
"permissionSymbol":permissionSymbol
}]
}

有关此的更多信息,您可以阅读此示例 Nested_Results_for_Collection

关于java - 使用 MyBatis 返回对象内部对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31220726/

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