2014-10-17 62 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

相关问题