2014-10-17 103 views
4

我有兩個模型類:如何使用Spring Data Cassandra將域對象映射到CQL表?

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; 
... 
} 

,我想堅持的第一類的實例中使用Spring數據卡桑德拉列族。特別是在使用Cassandra的模板是這樣的:

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

和Spring數據有問題序列化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而不需要Spring Data Cassandra的響鈴。如果您選擇融合DTO和實體(實體是持久域對象)的體系結構概念,則可以自由使用Spring Data Cassandra以及所需的映射元數據(@Table,@PrimaryKeyColumn等)。你的選擇。

請參閱http://goo.gl/gPBFpu以獲取有關實體訴DTOs主題的更多信息。

+0

不是一個壞主意......謝謝 – Ither 2014-10-24 15:28:11

相關問題