Programing/Spring Framework

Attribute Converter를 이용한 커스텀 컬럼 사용하기

BUST 2017. 8. 6. 17:26

Attribute Converter를 이용한 커스텀 컬럼 사용하기

데이터를 저장할때 사용하는 방식으로 JSON 방식으로 사용하는 경우가 많다. DB에서 데이터를 읽을 때에는 객체로 변환하고 저장할때에는 스트링 형태로 다시 변환하는 과정이 필요하다. JPA의 Attribute Converter를 이용하면 이러한 과정 없이 Repository에서 읽어들인 값을 이용하여 바로 객체로 변환할수가 있다.

Json Object

@JsonIgnoreProperties(ignoreUnknown = true)
public class EventData {
  private String name;
  private String password;
}

Converter

@Converter
public class EventDataConverter implements AttributeConverter<EventData, String> {
    private ObjectMapper objectMapper = new ObjectMapper();
 
    @Override
    public String convertToDatabaseColumn(EventData attribute) {
      try {
        return mapper.writeValueAsString(attribute);
      } catch (Exception e){
        return "";
      }
    }
 
    @Override
    public EventData convertToEntityAttribute(String dbData) {
      try {
        return mapper.readValue(dbData, EventData.class);
      } catch (Exception e){
        return null;
      }
    }
}

Entity Class

@Entity
public class Entity {
    @Convert(converter = EventDataConverter.class)
    private EventData eventData;
}


'Programing > Spring Framework' 카테고리의 다른 글

Spring Bean Life Cycle  (0) 2018.09.21
Spring @Transactional Propagation  (0) 2018.09.10
Spring Constructor Dependency Injection  (0) 2018.09.06
Spring JDBC  (0) 2018.08.23
@Value 어노테이션 활용  (0) 2017.06.28