我想在Mybatis的Result Map中选择Collection of Integers作为Collection。我无法找到解决方法。
结果类是
class Mapping {
private String name;
private List<Integer> ids;
}
Mybatis如下:
<resultMap id="mapping" type="some.package.Mapping">
<result property="name" column="name"/>
<collection property="ids" column="id" javaType="java.util.List" ofType="java.lang.Integer" />
</resultMap>
<select id="getMapping" resultMap="mapping">
SELECT name, id
FROM mapping
</select>
此代码对我不起作用。 我错过了什么?
答案 0 :(得分:4)
要在单个resultMap中获取整数列表,您可以使用:
<id property="name" column="name"/>
<collection property="ids" ofType="Integer">
<result column="id"/>
</collection>
嵌套选择也可以,但它会执行N + 1个查询,可能是a performance issue。
答案 1 :(得分:0)
mybatis不知道如何选择id作为id列表。 你可以使用嵌套选择
<collection property="ids" column="name" select="findIdByName" />
<select id="findIdByName" resultType="int">
SELECT id
FROM mapping where name = #{name}
</select>