0

私は春のブートアプリケーションを開発中です。 Apache Cassandra DBを接続します。私はカサンドラでUDTを作りました。 CassandraOperationsを使用してデータを保存しようとしています。私は例外を得ています。私はCassandra UDTの例に従っています。Cassandra UDT VerifierMappingExceptions

http://www.devjavasource.com/cassandra/cassandra-udts-java-example/

カサンドラDB:2.1.11

例外:

org.springframework.data.cassandra.mapping.VerifierMappingExceptions: com.lab.model.OrderLine: 
Cassandra entities must have the @Table, @Persistent or @PrimaryKeyClass Annotation 
at org.springframework.data.cassandra.mapping.BasicCassandraPersistentEntityMetadataVerifier.verify(BasicCassandraPersistentEntityMetadataVerifier.java:45) ~[spring-data-cassandra-1.4.3.RELEASE.jar:na] 

オーダーラインのJavaクラスが持つ唯一の@UDT @Tableない、@Persistentまたは@PrimaryKeyClass注釈

import java.sql.Timestamp; 
import java.util.ArrayList; 
import java.util.List; 

import org.springframework.cassandra.core.PrimaryKeyType; 
import org.springframework.data.cassandra.mapping.PrimaryKeyColumn; 
import org.springframework.data.cassandra.mapping.Table; 


@Table("order") 
public class Order { 

    @PrimaryKeyColumn(name = "ord_id", ordinal = 0, type = PrimaryKeyType.PARTITIONED) 
    private int ord_id; 
    private List<OrderLine> order_line; 

} 


import java.util.UUID; 
import com.datastax.driver.mapping.annotations.UDT; 
@UDT(name = "order_line") 
public class OrderLine { 

    private UUID po_line_nbr; 
    private int whpk_qty; 
} 
この問題を解決する方法

のpom.xml

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.1.RELEASE</version> 
    <relativePath /> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 

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

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-cassandra</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

答えて

0

SpringデータCassandraはDatastaxのマッピング注釈をサポートしていません。

春データのUDTサポートCassandraはhttps://github.com/spring-projects/spring-data-cassandra/pull/84とマージされようとしています。

あなたは@UserDefinedTypeとUDTのを指定すると、春データカサンドラ1.5は今年の終わりにリリースされることを期待UDTValue

@UserDefinedType 
public class Address { 
    String city; 
    String country; 
} 

@Table 
public class Person { 

    @Id String id; 
    Address address; 
    UDTValue genericUdt; 
} 

を使用することができるようになります(https://github.com/spring-projects/spring-data-commons/wiki/Release-Train-Ingallsを参照)

+0

私は適切な依存関係を見つけることができません。私はpom.xmlを更新しました。私の問題を解決するためにpom.xmlを修正してください。ありがとうございました – Gnana

+0

'SNAPSHOT'が構築されたため、UDTサポートはまだ利用できません。 – mp911de

+0

UDTでCassandraと春を開発することは可能ですか?可能ではない。これで私を助けてくれますか?私はカッサンドラで春には新しい – Gnana

0

私はマッパーの概念を使用していました。それは良い仕事です。私は私の問題を解決するために以下のURLに従ってきました。

https://datastax.github.io/java-driver/2.1.7/features/object_mapper/using/ 

https://datastax-oss.atlassian.net/browse/JAVA-590 
関連する問題