4

我有两个模型类:

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如何转换类型的方法。在官方文档中,有一章告诉我必须使用CassandraMappingConverterand MappingCassandraConverter,但他们还没有提供示例。

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

4

1 回答 1

-1

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

于 2014-10-22T22:50:52.377 回答