【发布时间】:2018-01-04 03:46:12
【问题描述】:
我正在尝试在幻像中创建自定义 UDT。
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":{}}
我认为 UUID 类型转换对 json 转换存在问题。但我被困在这里。有什么帮助吗? 提前致谢!
PS:我知道 phantom-pro 中有一个名为 @UDT 的选项可以解决此问题。但我不想在这里使用专业版。
【问题讨论】:
-
不幸的是,您将无法使用 JSON 列作为 UDT 的替代品,因为 JSON 将所有内容编码为字符串,因此 phantom-pro 是您唯一的选择。如果您给我发电子邮件,我很乐意帮助您了解更多相关信息。
-
@flavian 很高兴与您联系。我想试试 UDT 的专业版。您的邮件 ID?
标签: scala cassandra phantom-dsl