0

私はPhantomフレームワークを使用してCassandraと連携しており、オプションフィールドでeqsを実行しようとしています.

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

次に、「値eqsはオブジェクトのメンバーではありません」と表示されます

それを達成する方法はありますか?わからない...

id フィールドは Option[UUID] です。Play Framework で POST リクエストを受信するときは null でなければならないためですが、この assert をファントムで行う方法がわかりません。

また、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 プライマリのどの部分も にすることができないため、CQL の一部として潜在的なnull値を使用するPRIMARY KEYことも間違っていますnull。処理ロジックをファントムの外に移動することをお勧めします。

従来、テーブル -> db サービス -> api コントローラー -> api というアプローチは、関心をより適切に分離してモジュラー アプリケーションを構築する方法です。単純な I/O をテーブル レベルで維持し、アプリケーション レベルの一貫性を db サービス レベルで維持し、すべての処理ロジックをより高いレベルで維持することをお勧めします。

お役に立てれば。

于 2015-02-27T19:19:17.697 に答える