0

在 cassandra 表中,我放置了类,其中一个字段是 AnyContent 类型。我将它序列化为字节数组。比我想从这个专栏中得到它到我的班级。我只能用方法得到fromRow(row: Row)

    AnyContentAsText(TypeCodec.varchar().deserialize(body(row),
 ProtocolVersion.NEWEST_SUPPORTED))

只有这样才能编译

但它返回AnyContent(AnyContentAsJson({"body":"value"})并且很难解析并从中获取 JSON 值。

也许有一些直接的方法可以简单地得到它

4

1 回答 1

0

简单的答案是您不这样做,您要采用的策略可能不是最好的主意。内部封装了很多变化,AnyContent值得花更多时间了解 Play Framework 中所扮演的角色,它比看起来要复杂一些。

您需要从头开始编写各种各样的解码器,以允许您重新创建编码为 的原始响应AnyContent,据我所知,框架不提供。

相反,您真正追求的是一种更加以领域为中心的方法,在这种方法中,您的数据库知道您的业务对象,而不是您使用的 HTTP 框架。在理想情况下,数据库模块和 Web 框架模块应该在您的应用程序中完全分离,并且 HTTP 层应该依赖于数据库层,而不是相反。

所以我可以提供进一步的帮助,如果有助于理解你想要实现的目标。如果您只是想将 JSON 存储在 Cassandra blob 中,那么出于这个原因,您已经可以JsonColumn随意使用了。

这里查看详细信息。

于 2016-05-30T13:12:16.680 回答