我有一個Java類正在使用datastax cassandra驅動程序將一個pojo寫入cassandra表。一切工作正常,直到需要寫一個類對象到cassandra表。它拋出這個錯誤:Java/Cassandra拋出錯誤併產生凍結屬性
產生的原因:com.datastax.driver.core.exceptions.CodecNotFoundException:編解碼器找不到請求的操作:冷凍< projKeySpace.smi> < - > code.generic.common.data。 MyCustomSmiObject]
所以我嘗試了很多不同的事情來嘗試使屬性「凍結」,但沒有任何工作,我不斷收到相同的錯誤。這是一個類對象的例子。
@Table(keyspace="projkeyspace", name="summarytable")
public class DataGroupingObject implements Serializable {
@Column(name = "objid")
private String objId;
@Column(name = "timeofjob")
private Date timeOfJob;
@Column(name = "smiobjectinput")
@Frozen
//Have also tried:
//@Frozen("frozen<projKeySpace.smi>")
//@Frozen("frozen<smi>")
//@Frozen("frozen<MyCustomSmiObject>")
//And all other permutations I can think of...
private MyCustomSmiObject myCustomSmiObject; //The problem attribute
@Column(name = "column5")
private String dataForColumn5;
//Getters and setters....
}
那麼我忽略了什麼?挖掘到datastax文檔並沒有顯示出超出這個範圍的http://docs.datastax.com/en/drivers/java/2.2/com/datastax/driver/mapping/annotations/Frozen.html,我試過了。
我也嘗試讓MyCustomSmiObject被映射到凍結的'projkeyspace.smi',並沒有工作(當然,我不認爲這會因爲實際上沒有cassandra中稱爲smi的表,它只是一個類型),但這裏是一個例子:
@Table(keyspace="projkeyspace", name="smi")
public class MyCustomSmiObject implements Serializable {
@Column(name = "idstring")
private String idString;
@Column(name = "valuenum")
private Double valueNum;
//Getters and Setters....
}
所以就像我說的,我很茫然。任何幫助將不勝感激,並提前感謝!
是的,我不知道UDT。這是答案,謝謝! – Jicaar