ibatis返回实体中带有list对象
时间: 2024-09-06 10:05:13 浏览: 41
iBatis(MyBatis的一个分支)在处理数据库查询并将其结果映射到Java对象时,如果查询的结果包含List类型的属性,它会将查询结果转换成对应的Java List。当你在Mapper XML文件中定义了一个 resultMap,指定了某个查询的结果集应该如何映射到一个Java Bean,例如:
```xml
<resultMap id="UserResult" type="com.example.User">
<id property="id" column="user_id"/>
<collection property="friends" ofType="com.example.Friend">
<id property="friendId" column="friend_id"/>
<!-- 添加其他朋友信息映射 -->
</collection>
</resultMap>
```
在这个例子中,`User`是一个实体类,`friends`是一个List,其中元素的类型是`Friend`。当你通过iBatis执行一个查询,并指定使用`UserResult`作为结果映射,查询返回的结果将会自动包装成`User`对象,其中`friends`属性就是从数据库查询结果中提取出来的`Friend`列表。
获取这个数据通常在Service层或DAO层的代码里,你可以像下面这样操作:
```java
User user = sqlSession.selectOne("select * from users where id = #{userId}", new Object[]{userId});
List<Friend> friends = user.getFriends(); // 获取朋友列表
```
阅读全文