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
、