如何使用 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 列系列中第一个类的实例。特别是像这样使用 Cassandra 模板:

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

和 Spring 数据在序列化List<HotelPriceDTO>时出现问题。我认为我需要的是一种告诉cassandraTemplate如何转换类型的方法。在官方文档中,有一章告诉我必须使用 CassandraMappingConverterMappingCassandraConverter ,但他们还没有提供示例。

我的问题是:是否有一个示例可以说明如何注册这样的转换器(在项目的测试代码中,可能是?(或者在官方文档完成时可以使用的任何其他示例?提前谢谢。

不想这么说,但你应该在 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。

相关内容

  • 没有找到相关文章

最新更新