2017-07-28 101 views
0

我想在幻像中創建一個自定義UDT。鑑於Phantom Cassandra中的自定義用戶定義類型

case class CreationTrack(source_ip: String, created_by: String, created_at: UUID) 

abstract class Registrations extends CassandraTable[Registrations, CreationTrack] with RootConnector { 
object creation_details extends JsonColumn[CreationTrack](this){ 
    override def fromJson(obj: String): CreationTrack = { 
     JsonParser.parse(obj).extract[CreationTrack] 
    } 
    override def toJson(obj: CreationTrack): String = { 
     compactRender(Extraction.decompose(obj)) 
    } 
    } 
} 

輸入:

CreationTrack("192.123.4.5","arun", UUIDs.timeBased()) 

但我正在逐漸,

Invalid STRING constant{"source_ip":"192.123.4.5","created_by":"arun","created_at":{}} 

我相信這是對JSON的轉換UUID類型轉換的問題。但是我被困在這裏。任何幫助? 在此先感謝! PS:我知道在phantom-pro中有一個叫做@UDT的選項可以解決這個問題。但我不想在這裏使用專業版。

+0

不幸的是,您將無法使用JSON列作爲UDT的替代品,因爲JSON將所有內容都編碼爲字符串,所以幻影專業版是您唯一的選擇。如果您給我發電子郵件,我很樂意幫助您瞭解更多信息。 – flavian

+0

@flavian很高興與您聯繫。我想嘗試UDT的專業版。你的郵件ID? – Akan

回答

0

這是一個解決的問題,並有一個專門用於解決UDT/UDA/UDF支持的phantom-pro模塊。有關網站和GitHub文檔的詳細信息,只是希望在未來Google員工正在尋找答案的情況下回答此問題。