private List<Long> roleIds;mybatis多表联查怎么保存为List<long>形式,xml方式
时间: 2024-06-16 09:08:18 浏览: 99
以XML文件的形式备份数据库中的表
在mybatis多表联查时,可以使用`<collection>`标签将查询结果转化为List<Long>类型。具体实现方法如下:
1. 在对应的实体类中,添加`private List<Long> roleIds;`属性。
2. 在Mapper.xml文件中编写多表联查的SQL语句,并将结果映射到实体类中的`roleIds`属性。
```xml
<select id="selectUserWithRoles" resultMap="userWithRoles">
SELECT u.id, u.username, u.password, r.id AS roleIds
FROM user u
LEFT JOIN user_role ur ON u.id = ur.user_id
LEFT JOIN role r ON ur.role_id = r.id
</select>
<resultMap id="userWithRoles" type="User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<collection property="roleIds" ofType="Long">
<result column="roleIds"/>
</collection>
</resultMap>
```
3. 在Mapper接口中添加对应的方法,并使用`@ResultMap`注解将查询结果映射到实体类中。
```java
public interface UserMapper {
@Select("selectUserWithRoles")
@ResultMap("userWithRoles")
User selectUserWithRoles();
}
```
4. 调用Mapper接口中的方法,即可获取包含List<Long>类型属性的实体类对象。
```java
User user = userMapper.selectUserWithRoles();
List<Long> roleIds = user.getRoleIds();
```
阅读全文