在我的 Spring Boot 应用程序中,我有这样的实体:
@Entity
@Table(name = "UserENT")
public class User implements Serializable {
@Id
private String id;
private Data data;
...
我想实现该对象数据将以json格式存储在数据库中。但从数据库中选择时,它会映射到数据对象上。
感谢您的建议。
最佳答案
您可以实现一个javax.persistence.AttributeConverter
,如下所示:
public class DataJsonConverter implements AttributeConverter<Data, String> {
private ObjectMapper objectMapper = ...;
@Override
public String convertToDatabaseColumn(Data data) {
try {
return objectMapper.writeValueAsString(data);
} catch (JsonProcessingException e) {
throw new RuntimeException("Could not convert to Json", e);
}
}
@Override
public Data convertToEntityAttribute(String json) {
try {
return objectMapper.readValue(json, Data.class);
} catch (IOException e) {
throw new RuntimeException("Could not convert from Json", e);
}
}
}
然后您可以通过注释您的字段来使用它:
@Convert(converter = DataJsonConverter.class)
private Data data;
关于json - Spring 启动 JPA : Storing entity as JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44681127/