2017-06-21 6 views
1

としての実体を格納する私はそのようなエンティティを持っている:春ブーツJPAは:私の春のブートアプリでJSON

@Entity 
@Table(name = "UserENT") 
public class User implements Serializable { 

    @Id 
    private String id; 

    private Data data; 
    ... 

私はJSON形式でDBに格納され、そのオブジェクトのデータを達成したいと思います。しかし、DBから選択すると、Dataオブジェクトにマップされます。

ありがとうございました。

答えて

3

のようにあなたは、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; 
関連する問題