在 Spring Cassandra 存储库查询中返回嵌套的 UDT

问题描述

我有以下 Cassandra 用户定义类型和表格

CREATE TYPE IF NOT exists udt_type (
min_value int,max_value int,complete_date timestamp
);

CREATE TABLE IF NOT exists test_table (
key text,udt_column frozen<udt_type>,PRIMARY KEY (key)
);

和 Java 类

import org.springframework.data.cassandra.core.mapping.UserDefinedType;

@UserDefinedType("udt_type")
public class UdtType  {
    @Column("min_value")
    private Integer minValue;
    @Column("max_value")
    private Integer maxValue;
    @Column("complete_date")
    private Date completeDate;
}
import org.springframework.data.cassandra.core.mapping.Table;

@Table
public class TestTable {
    @PrimaryKeyColumn(name = "key",type = PrimaryKeyType.PARTITIONED)
    private String key;
    @Column("udt_column")
    private UdtType udtColumn;
}

使用返回 UdtType 的查询来实现 Spring Cassandra 存储库

@Repository
public interface TestTableRepository extends CassandraRepository<TestTable,String> {

    @Query("SELECT udt_column FROM test_table WHERE key = :key")
    UdtType getUdtType(@Param("key") Integer key);
}

但它返回 UdtType,所有字段都为 null。 发现它只对我有

@Repository
public interface TestTableRepository extends CassandraRepository<TestTable,String> {

    @Query("SELECT udt_column FROM test_table WHERE key = :key")
    TestTable getUdtType(@Param("key") Integer key);
}

当返回类型是表类型时,但是这样很不方便。 有什么办法可以让这个查询返回 UDT 类型?

我正在使用

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-cassandra</artifactId>
  <version>2.0.14.RELEASE</version>
</dependency>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)