spring jpa 自动转换List为Json并存储到mysql 的String

发布于 / 随记 / 0条评论 / Tags: java / 3 次浏览

jpa可以自己定义convert,从数据库到JAVA对象,还有从java对象到数据库的varchar。

1.首先定一个一个convert,这里用阿里巴巴的fastjson

package com.tddlmj.rstar.config;

import com.alibaba.fastjson.JSON;

import javax.persistence.AttributeConverter;

public class JpaConverterListJson  implements AttributeConverter<Object, String> {
    @Override
    public String convertToDatabaseColumn(Object o) {
        return JSON.toJSONString(o);
    }

    @Override
    public Object convertToEntityAttribute(String s) {
        return JSON.parseArray(s);
    }
}

2.然后在Entity里面的字段加上注解

    @Convert(converter = JpaConverterListJson.class)
    @Column(columnDefinition = "TEXT")
    private List<Person> writers;

3.这样存的时候就是String,取出来自动为List

    评论区(暂无评论)