2017-08-03 120 views
0

因此,從1.5開始,我們可以將UDT與@UserDefinedType進行映射。彈簧數據Cassandra和用戶定義類型

@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:當試圖映射的其中之一,我們正在經歷的錯誤未知 類型[類java.lang中。字符串]爲實體[cle]的實體 [com.laposte.ariane.udt.Critere];只有原始類型及集合 或原始類型的地圖是不允許

爲了避免這種情況,我們刪除@CassandraType註解,但它看起來不正確。

我們的映射有什麼問題?

回答

2

DataStax的驅動程序僅報告Name.TEXT作爲原始數據類型,但不通過DataType.allPrimitiveTypes()報告Name.VARCHAR。 Spring Data Cassandra使用DataType.allPrimitiveTypes()來解析名稱到類型映射。我提交了一個ticket來爲這兩個添加顯式類型映射。

參見: