0

我正在使用 Phantom 框架与 Cassandra 一起工作,并且我正在尝试对 Option 字段进行 eqs,例如。

Address.select.where(_.id eqs Some(uuid)).one()

然后我得到“值 eqs 不是对象的成员”

有没有办法做到这一点?我想不通...

id 字段是一个 Option[UUID],因为当我在 Play Framework 中接收 POST 请求时它必须为 null,但我不知道如何在 phantom 中执行此断言

我还在 github 上打开了一个问题。

https://github.com/websudos/phantom/issues/173

4

2 回答 2

1

Phantom 依靠一系列隐式转换来提供大部分功能。修复从编译幻像表中得到的大多数错误的一种非常简单的方法是确保相关的导入在范围内。

幻影 1.7.0 之前

import com.websudos.phantom.Implicits._

1.7.0之后

import com.websudos.phantom.dsl._

除了隐式机制之外,phantom 还将帮助您为 Cassandra 中的大量有用对象设置别名:

  • 幻象连接器
  • Cassandra 一致性级别
  • 键空间

在 CQL 中使用潜在null值作为 a 的一部分PRIMARY KEY也是错误的,因为 CQL 主要的任何部分都不能null。将处理逻辑移到幻象之外是一个更好的主意。

传统上,表 -> 数据库服务 -> api 控制器 -> api 方法是构建模块化应用程序的方式,具有更好的关注点分离。最好将简单的 I/O 保持在表级别,将应用程序级别的一致性保持在 db 服务级别,并将所有处理逻辑保持在更高级别。

希望这可以帮助。

于 2015-02-27T19:19:17.697 回答
1

使用

import com.websudos.phantom.Implicits._

作品!!!

于 2015-01-15T18:05:16.653 回答