Mybatis-Plus 列表对象类型处理
环境
序列化工具 : Jackson
数据库 : Pg
问题
- 实体对象中需要保存
List
,并且保存的是对象类型,框架没有默认处理方式
解决方案
由于无法直接拿到属性的泛型类型,所以通过 Spring
提供的ResolvableType
保存List中的对象类型
暂时未支持Map,有需要可按照相同思路写
/**
* 通用集合转化类
* 例子 :
* 根据需要转化的类型继承该类
* <pre class="code">
* class UserTypeHandler extends CollectionTypeHandler<List<User>> {
* ...
* }
* </pre>
* 使用 :
* <pre class="code">
* class UserGroup {
* @TableField(typeHandler = UserTypeHandler.class)
* List<User> users;
* }
* </pre>
*
*/
public class CollectionTypeHandler<E> extends BaseTypeHandler<Collection<E>> {
private final JavaType javaType;
private final PGobject jsonObject = new PGobject();
/**
* 构造方法
*/
public CollectionTypeHandler() {
/* 获取当前对象类型 */
ResolvableType resolvableType = ResolvableType.forClass(g