java - Spring Data Cassandra 和用户定义类型

标签 java spring spring-boot cassandra spring-data

所以从1.5开始,我们可以用@UserDefinedType来映射UDT。我们在尝试映射其中之一时遇到错误:

@UserDefinedType("criteria")
public class Criteria {

  @CassandraType(type = Name.VARCHAR)
  private String cle;

  @CassandraType(type = Name.VARCHAR)
  private String nom;

  @CassandraType(type = Name.VARCHAR)
  private String format;
}

我们在启动时收到此错误:

org.springframework.dao.InvalidDataAccessApiUsageException: Unknown type [class java.lang.String] for property [cle] in entity [com.laposte.ariane.udt.Critere]; only primitive types and Collections or Maps of primitive types are allowed

为了避免这种情况,我们删除了 @CassandraType 注释,但这似乎不对。

我们的映射出了什么问题?

最佳答案

DataStax' 驱动程序仅将 Name.TEXT 报告为原始数据类型,但不通过 DataType.allPrimitiveTypes() 报告 Name.VARCHAR。 Spring Data Cassandra 使用 DataType.allPrimitiveTypes() 来解析名称到类型的映射。我提交了ticket为这两个添加显式类型映射。

另请参阅:

关于java - Spring Data Cassandra 和用户定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45484972/

相关文章:

java - 星云网格显示项目并将其居中

java - 通用方法与通用容器结合使用

java - 自己的配置属性

java - TomEE 中部署 org.springframework.context.ApplicationListener 异常

sql - H2 MERGE INTO ...使用多个值,如果存在则不更新

java - 尝试从 GWT 项目调用 SNMP-Get

java - 将缓冲区写入 Java channel : Thread-safe or not?

spring - 无法在 Spring Boot 测试 1.4 中找到 SpringBootConfiguration

java - 如何将 Jdbc4Connection 转换为 PGConnection?

java - 如何在 Spring Boot 中将 POST 请求从一个 Web 应用程序正确转发到另一个 Web 应用程序?