2014-10-17 4 views
4

나는 두 모델 클래스가 있습니다Spring 데이터를 사용하여 도메인 객체를 CQL 테이블에 매핑하는 방법 Cassandra?

public class AlertMatchesDTO implements Serializable 
{ 
    private static final long serialVersionUID = -3704734448105124277L; 

    @PrimaryKey 
    private String alertOid; 

    @Column("matches") 
    private List<HotelPriceDTO> matches; 
... 
} 

public class HotelPriceDTO implements Serializable 
{ 
    private static final long serialVersionUID = -8751629882750913707L; 

    private Long hotelOid; 
    private double priceByNight; 
    private Date checkIn; 
    private Date checkOut; 
... 
} 

을 나는 봄의 데이터를 사용하여 카산드라 열 가족의 첫 번째 클래스의 인스턴스를 유지하고 싶다. 이 같은 특정 사용 카산드라 템플릿에서 :

... 
cassandraTemplate.insert(dto, writeOptions); 
... 

봄 데이터

문제가 List<HotelPriceDTO>를 직렬화합니다. 내가 필요한 것은 cassandraTemplate에 형식을 변환하는 방법을 알려주는 것입니다. 공식 문서에는 a chapter이 있는데 이는 CassandraMappingConverterMappingCassandraConverter을 사용해야한다고 말하고 있지만 예제는 아직 제공하지 않습니다.

내 질문은 : 프로젝트의 테스트 코드에서 이와 같은 변환기를 등록하는 방법에 대한 예가 있습니까? 아니면 공식 문서가 완성되는 동안 사용할 수있는 다른 예제가 있습니까? 미리 감사드립니다.

답변

0

이 말은 싫지만 RTFM은 http://docs.spring.io/spring-data/cassandra/docs/1.1.0.RELEASE/reference/html/이어야합니다.

그렇다고해서 클래스 이름에 DTO이라는 접미사가 있다는 것을 알았습니다. 이는 도메인 모델이 없어도 DTO가있는 서비스 계층 만 가질 수 있음을 의미합니다. 그렇다면 매핑을 직접 RowMapper 구현으로 정의하고 단순히 CqlTemplate을 봄 데이터 Cassandra의 호 & 호각없이 사용하는 것이 좋습니다. DTO와 엔티티 (영속 도메인 객체 인 엔티티)의 아키텍처 개념을 융합하기로 선택한 경우 Spring 데이터 Cassandra를 필요한 매핑 메타 데이터 (@Table, @PrimaryKeyColumn 등)와 함께 자유롭게 사용할 수 있습니다. 너의 선택.

엔티티 대 DTO에 대한 자세한 내용은 http://goo.gl/gPBFpu을 참조하십시오.

+0

나쁘지 않은 생각 ... 감사합니다. – Ither