如何使用Spring Data Cassandra将域对象映射到CQL表?
问题描述:
我有两个模型类:如何使用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告诉我必须使用CassandraMappingConverter
和MappingCassandraConverter
,但它们还没有提供示例。
我的问题是:是否有一个例子如何注册一个这样的转换器(在项目的测试代码中,可能?)或任何其他例子,我可以使用,而官方文档完成?提前致谢。
答
讨厌这么说,但你应该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主题的更多信息。
不是一个坏主意......谢谢 – Ither 2014-10-24 15:28:11