我试图将数据插入Cassandra(2.1.9)我的Java对象具有UDT列表的映射。在运行代码时,我收到有关@Frozen注释的错误。我正在使用DataStax(2.1.9)库。 http://docs.datastax.com/en/drivers/java/2.1/index.html?com/datastax/driver/mapping/annotations/FrozenValue.html
create table user{
name text,
addresses map<text, frozen<list<frozen<address>>>>,
}
Run Code Online (Sandbox Code Playgroud)
我的Java课
public class User{
private String name;
@FrozenValue
private Map<String, List<AddressUDT>> addresses;
}
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
java.lang.IllegalArgumentException: Error while checking frozen types on field addresses of entity com.dante.data.model.User: expected AddressUDT to be frozen but was not frozen
at com.datastax.driver.mapping.AnnotationChecks.validateAnnotations(AnnotationChecks.java:73) ~[cassandra-driver-mapping-2.1.7.jar:na]
at com.datastax.driver.mapping.AnnotationParser.parseEntity(AnnotationParser.java:81) ~[cassandra-driver-mapping-2.1.7.jar:na]
at com.datastax.driver.mapping.MappingManager.getMapper(MappingManager.java:148) ~[cassandra-driver-mapping-2.1.7.jar:na]
at com.datastax.driver.mapping.MappingManager.mapper(MappingManager.java:105) ~[cassandra-driver-mapping-2.1.7.jar:na]
at com.dante.data.migration.dao.UserMigrationDao.insertUsersToCassandra(UserMigrationDao.java:389) ~[UserMigrationDao.class:na]
at com.dante.data.migration.service.impl.UserMigration.insertUsersToCassandra(UserMigration.java:32) ~[UserMigration.class:na]
at com.dante.data.migration.controller.DataMigrationController.migrateUserDetails(DataMigrationController.java:93) ~[DataMigrationController.class:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_60]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_60]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_60]
at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_60] …Run Code Online (Sandbox Code Playgroud)