我有两个模型类:
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 列系列中第一个类的实例。特别是像这样使用 Cassandra 模板:
...
cassandraTemplate.insert(dto, writeOptions);
...
和 Spring 数据在序列化List<HotelPriceDTO>
时出现问题。我认为我需要的是一种告诉cassandraTemplate
如何转换类型的方法。在官方文档中,有一章告诉我必须使用 CassandraMappingConverter
和 MappingCassandraConverter
,但他们还没有提供示例。
我的问题是:是否有一个示例可以说明如何注册这样的转换器(在项目的测试代码中,可能是?(或者在官方文档完成时可以使用的任何其他示例?提前谢谢。
不想这么说,但你应该在 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。