2
params.max = Math.min(params.max ? params.int('max') : 2, 100)
orders=OrderInfo.createCriteria().listDistinct()

ページネーションのために、パラメーターをリストに渡す必要があります。Post.list(params). ここに渡すにはどうすればよいですか?試しましたが、エラーが発生します。

また、取得した合計数も必要です。しかし、私はパラメータを設定することができません

orders=OrderInfo.createCriteria().listDistinct()

Plsは正しいコードを提案します

4

2 に答える 2

9

メソッドの最初のパラメーターとして params を渡すと、 methodを持つ がlist得られます。これにより、インスタンスの総数を取得できます。PagedResultListgetTotalCount()

params.max = Math.min(params.max?.toInteger() ?: 25, 100)
params.offset = params.offset ? params.offset.toInteger() : 0

def orderInfoCriteria = OrderInfo.createCriteria()
def results = orderInfoCriteria.list(params) { // your criteria code ... }
log.debug "Getting ${results.size()} order infos of ${results.totalCount}"

基準の詳細については、ドキュメントを参照してください。

于 2012-04-04T13:09:29.747 に答える
0

Grails Criteria クエリとページネーション パラメータ

params.max = params?.max as Integer ?: 10
params.page = params?.page as Integer ?: 1
params.offset = (params.page - 1) * params.max
params.sort = params?.sort ?: "email"
params.order = params?.order ?: "asc"
params.filter = params?.filter ?: ""
params.packet = params?.packet ?: ""

def members = Member.createCriteria().list(params)
  {
    or
    {
      if(params.filter != ""){
        ilike("firstName", "%" + params.filter + "%")
        ilike("lastName", "%" + params.filter + "%")
        ilike("email", "%" + params.filter + "%")
        try {
          params.filter as Long
          eq("citizenId" , params.filter.toLong())
        }catch (e) {

        }
        ilike("mobile", "%" + params.filter + "%")
      }
    }
  }

def dataMembers = [:]
dataMembers.data = members
dataMembers.totalRecord = members.totalCount
render dataMembers as JSON

出力

{
"data": [
    {
      "id":1,
      "firstName":name
    },
    {
      "id":2,
      "firstName":name
    }
  ],
"totalRecord":5
}
于 2017-01-11T06:14:55.930 に答える