0
我想爲包含UDT列表的表使用Datastax的UDT映射器。嘗試實例化UDTmapper時,驅動程序拋出異常。它似乎無法映射代表我的UDT的類的實例列表。Datastax驅動程序異常,同時爲用戶定義類型列表實例化UDT映射器
用戶定義的類型和表與語句創建:
CREATE TYPE IF NOT EXISTS keyspace.value (
id uuid,
values list<text>
);
CREATE TYPE IF NOT EXISTS keyspace.epoch (
name text,
description text,
start_time timestamp,
duration int,
values list<frozen<value>>
);
CREATE TABLE IF NOT EXISTS keyspace.service_level_agreements (
id uuid,
name text,
description text,
epochs list<frozen<epoch>>,
chargeback_info uuid,
PRIMARY KEY (id)
);
的類別是:
public class Value {
@Field(name = "id")
private UUID sloId;
@Field(name = "values")
private List<String> values;
}
public class Epoch {
@Field(name = "name")
private String name;
@Field(name = "description")
private String description;
@Field(name = "start_time")
private Date startTime;
@Field(name = "duration")
private long duration;
@Field(name = "values")
private List<Value> values;
}
@UDT (keyspace = "keyspace", name = "service_level_agreements")
public class ServiceLevelAgreement e {
@Field(name = "id")
private UUID id;
@Field(name = "name")
private String name;
@Field(name = "description")
private String description;
@Field(name = "epochs")
private List<Epoch> epochs;
@Field(name = "chargeback_info")
private UUID charegebackInfo;
}
當我試圖實例UDT映射器我得到一個異常:
Cannot map unknown class com.me.Epoch for field private java.util.List com.me.ServiceLevelAgreement.epochs
UDT映射器似乎無法爲Epoch類提供資金,儘管它在classp上ATH。我也嘗試在ServiceLevelAgreement中移動Epoch類,但它沒有幫助。任何想法我做錯了什麼?