B站(乐哥聊编程)、西瓜(乐哥聊编程) 有完整配套视频,免费观看
当项目中的实体 包含了另外一个实体,并且想要将包含的实体当作字段存入数据库,这个时候就需要类型处理器了。
虽然MyBatisPlus给我们提供了默认的处理器,将数据作为json存入字段,但是只处理了单个实体的存入和读取,并没有处理集合数据的读取反射,所以这节课就带大家怎么去处理集合数据从单个字段中进行读取映射。
/**
* <p>
*
* </p>
*autoResultMap = true
* @author 乐哥聊编程
* @since 2022-07-18
*/
@TableName(value = "manage_user",autoResultMap = true)
@TableField(typeHandler = JacksonTypeHandler.class)
private Permission permission;
@Test
public void testSave() {
Permission permission = Permission.builder()
.url("/api/user/add")
.method("get")
.name("新增用户")
.build();
ManageUser manageUser = ManageUser.builder()
.userName("乐哥1000008")
.delFlag(false)
.email("110120119@qq.com")
.nickName("乐哥聊编程")
.mobile("13098987766")
.permission(permission)
.build();
manageUserServiceImpl.save(manageUser);
}
package com.lglbc.mybatispluslearning.configuration;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.core.type.TypeReference;
import com.lglbc.mybatispluslearning.entity.Permission;
import java.io.IOException;
import java.util.List;
public class MyListTypeHandler extends JacksonTypeHandler {
private Class<?> type=null;
public MyListTypeHandler(Class<?> type) {
super(type);
this.type=type;
}
@Override
protected Object parse(String json) {
try {
return getObjectMapper().readValue(json, new TypeReference<List<Permission>>() {
});
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
@TableField(typeHandler = MyListTypeHandler.class)
private List<Permission> permission;
@TableName(value = "manage_user", autoResultMap = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManageUser implements Serializable {
@Test
public void testSave() {
Permission permission = Permission.builder()
.url("/api/user/add")
.method("get")
.name("新增用户")
.build();
ManageUser manageUser = ManageUser.builder()
.userName("乐哥1000009")
.delFlag(false)
.email("110120119@qq.com")
.nickName("乐哥聊编程")
.mobile("111111")
.permission(Arrays.asList(permission))
.build();
manageUserServiceImpl.save(manageUser);
}
成长心路 | 优质书单 | 面试资料
牛人故事 | 前沿技术 | 视频教程