2017-04-21 1 views
0

Je cherche de l'aide concernant les données de démarrage du ressort en utilisant la base de données Cassandra.
J'ai les dépendances suivantes dans mon fichier pom.xml.Comment mapper le type de données utilisateur dans cassandra en utilisant les données de démarrage du ressort

 <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-boot-starter-data-cassandra</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-core</artifactId> 
      <version>2.1.10.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-mapping</artifactId> 
      <version>2.1.10.3</version> 
     </dependency> 

The table structure looks like: 

@Table(value = "TEST_ORDERS") 
public class OrderDTO { 

    @PrimaryKey 
    @Column(value = "email") 
    private String emailId; 

    @Column(value = "order_id") 
    private int orderId; 

    @Column(value = "creation_date") 
    private Timestamp creationDate; 

    @Column(value = "discount_total") 
    private double discountTotal; 

    @Column(name = "shipments") 
    //This is a UDT type 
    private Set<ShippingDetails> shipments; 

    //getters and setters here 
} 

The ShippingDetails object is a UDT with following declartion and i defined as a frozen collection in the cassandra CQL sripts 

@UDT(name = "shipping", keyspace = "mc_checkout") 
public class ShippingDetails { 

    @Field(name = "name") 
    private FullName name; 

    @Field(name = "quantity_shipped") 
    private int quantityShipped; 

    @Field(name = "shipping_address") 
    private CheckoutAddress shippingAddress; 
    //so on 
} 

There is a repository created for the basic CRUD operations: 
@Repository 
public interface OrderRepository extends CrudRepository<OrderDTO, String> { 

} 

    When i try to invoke findOne API of this repository in my Service class 

i obtenir ci-dessous erreur: entités Cassandra doivent avoir le @Table, @Persistent ou @PrimaryKeyClass Annotation

Répondre

1

données Spring pour Apache Cassandra et cartographie « DataStax sont deux outils indépendants qui tentent d'accomplir la même . Veuillez utiliser l'un ou l'autre, mais ne les mélangez pas. Est un type de données de ressort tandis que @Field et @UDT proviennent de la cartographie Datastax.

La prise en charge UDT pour Spring Data pour Apache Cassandra est disponible à partir de la version 1.5, voir reference docs. Spring Data pour Apache Cassandra 1.5 nécessite Datastax Java Driver 3.0 ou plus récent.