2

クエリを返すメソッドがあります:

def list:Query[User] = from(users)(u => where(u.age>20) select(u))

リストを数えたいのですが、この方法は次のとおりです。

list.count(_ => true)

リスト内のすべての要素を取得してループします。

から「select count」ステートメントを作成する解決策を見つけたいのですが、Query[User]まだ見つかりません。

または、カウント用の別のメソッドを作成する必要があります。

def countList: Long = from(users)(u => where(u.age>20) compute(count))

これは私が望むものではありません。

4

3 に答える 3

2

2 つのクエリを作成してみてください。

from(list)(_ => compute(count))
于 2013-06-18T08:32:12.570 に答える
0

このような場合、共通のクエリ ビルダーを作成して、条件ロジックを 1 か所に保持することが理にかなっている場合があります。クエリの結果セットをページングするときに便利です。

def queryBuilder[T](action: User => WhereState[Conditioned] => QueryYield[T]) : Query[T] = from(users)(u => action(u)(where(u.age>20)))

def countQuery = queryBuilder(u => w => w.compute(count))

def selectQuery = queryBuilder(u => w => w.select(u))
于 2015-04-02T14:33:04.997 に答える