如何使用 jpa 更新 jsonb postgresql 表列?
当我尝试将列实体定义为 jsonb 时,它会抛出错误
我也有类似的问题,可能我已经用这种方式注释了 jsonb 列对应的字段
@Convert(converter = JpaConverters.JsonConverter.class)
@ColumnTransformer(
write = "?::jsonb"
)
public ObjectNode caratteristiche;
其中 JsonConvert 是自定义转换
public class JpaConverters {
@Converter(autoApply = true)
public static class JsonConverter implements AttributeConverter<JsonNode, String> {
@Nullable
@Override
public String convertToDatabaseColumn(JsonNode entityValue) {
try {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(entityValue);
} catch (JsonProcessingException e) {
return null;
}
}
@Nullable
@Override
public JsonNode convertToEntityAttribute(String databaseValue) {
try {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(databaseValue, ObjectNode.class);
} catch (JsonProcessingException ex){
return null;
}
}
public static JsonNode toJson(String str){
var myself = new JsonConverter();
return myself.convertToEntityAttribute(str);
}
}
}
转换允许将 jsonb 类型映射为来自 jackson 的 Java JsonNode。希望这能有所帮助