2

以下の定型コードに「params」を直接渡すことができることに気付きました。

[fooInstanceList: Foo.list(params), fooInstanceTotal: Foo.count()]

以下の例のように、Hibernate 基準の一部として「params」を渡すことは可能ですか?

def c = Foo.createCriteria()
    def results = c {
        not { eq("bar","test") }
    }

    [fooInstanceList: results, fooInstanceTotal: results.size()]

たとえば、ページングに使用できるように、「max」および「offset」パラメータを使用しようとしています。また、ページングされていないすべての結果をカウントする count に相当するものも使用したいと思います。results.size() は、ページングされていない目的の結果ではなく、ページングされた結果のみを提供すると思います。これについてどうすればいいですか?

4

1 に答える 1

2

params基準を使用しながら使用できます。使用しないというタイプミスがあると思いますc.list

def c = Foo.createCriteria()
def results = c.list(params) {
    not { eq("bar","test") }
}

paramsとがあるmaxと仮定しoffsetます。

Criteria は、 totalCountを取得できるPagedResultListを返します。そう

results.totalCount //results.getTotalCount()

合計数を取得するために常に 2 番目のクエリが起動されますが、合計数が表示されます。この場合、明示的に行うのではなく、Hibernate が自動的に行います。

于 2013-10-04T17:18:02.860 に答える