我有两个模型类:
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 Data在Cassandra列族中保留第一个类的实例。特别是使用像这样的Cassandra模板:
...
cassandraTemplate.insert(dto, writeOptions);
...
和Spring Data在序列化List<HotelPriceDTO>
时遇到问题。我认为我需要的是一种告诉cassandraTemplate
如何转换类型的方法。在官方文档中,a chapter告诉我必须使用CassandraMappingConverter
和MappingCassandraConverter
,但它们还没有提供示例。
我的问题是:是否有一个如何注册这样的转换器的示例(在项目的测试代码中,可能是?)或者在官方文档完成时我可以使用的任何其他示例?提前谢谢。
答案 0 :(得分:0)
讨厌这样说,但你应该在http://docs.spring.io/spring-data/cassandra/docs/1.1.0.RELEASE/reference/html/进行RTFM。
话虽如此,我注意到你的类名上有DTO
个后缀,这对我来说意味着你可能没有域模型,只有一个带有DTO的服务层。如果是这种情况,您可以考虑将自己的映射定义为RowMapper
实现,只需使用CqlTemplate
而无需使用铃声和放大器。 Spring Data Cassandra的口哨声。如果您选择融合DTO和实体的体系结构概念(实体是持久域对象),您可以自由使用Spring Data Cassandra以及所需的映射元数据(@Table
,@PrimaryKeyColumn
等)。你的选择。
有关实体诉DTO的主题的更多阅读,请参阅http://goo.gl/gPBFpu。