2017-09-18 9 views
0

私は、ドメインからリストを取得して別のリストに保存する時点で立ち往生しています。あなたが方法を見つけるGORMに直接改ページのparamsを渡すことができますどのようにListのGraamsでmaxおよびoffsetを設定するには

params.max = Math.min(max ?: 10, 100) 
     params.offset = params.offset as Integer ?: 0 



     Calendar date = Calendar.getInstance(); 
     date.set(Calendar.DAY_OF_MONTH, 1); 
     Calendar date2 = Calendar.getInstance(); 
     date2.set(Calendar.DAY_OF_MONTH, date.getActualMaximum(Calendar.DAY_OF_MONTH)); 

     def MonthStartDate =date.getTime() 
     def MonthEndDate =date2.getTime() 
     int monthMaxDays = MonthEndDate - MonthStartDate + 1 


     Calendar cal0 = Calendar.getInstance(); 
     cal0.set(Calendar.DAY_OF_MONTH,1); 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.DAY_OF_MONTH,1); 
    def myNewList = new ArrayList<DomainABCTYPE>() 
      def perDayDates = new ArrayList<Date>() 




      for(int i=0;i<monthMaxDays;i++) { 
       Date date1 = cal0.getTime(); 
       cal.add(Calendar.DATE, 1); 
       Date calDate = cal.getTime(); 


       def myListPerDay = DomainABCTYPE.findAllByStartDateLessThanAndEndDateGreaterThanEquals(calDate, date1, params) 



       int k=0 
       for(;k < myListPerDay .size(); k++){ 
        myNewList.add(myListPerDay .get(k)) 
        perDayDates.add(date1) 
        } 


       cal0.add(Calendar.DATE, 1) 


      } 


      render(view: "index", model:[ListInstance:myNewList ,ListCount:myNewList.size(), DatesList:perDayDates, MonthStartDate: MonthStartDate, MonthEndDate: MonthEndDate]) 

     } 

答えて

0

Have a look here:どのように私は、新しく作成されたリスト

へのparamを渡す行うコードは以下の同類に見えます。

私は簡単にあなたのコードを見ていましたが、すべてのことが狂ったように見えます。あなたは日付の差分を計算してから、日付の差分を反復してレコードを探します。私は毎日のデータをチェックする必要があり

なぜHQL queryを記述しないと、そのすべてが1つのルックアップを行うことができ、入れ子になった反復の検索が

+0

を必要とすべきではない要するにbetween

where a.date BETWEEN :date1 AND :date2 

を使用1ヶ月... 1日から30日までの日付の範囲をチェックするためのgormを書く方法は、日付が2つの列startdateとenddateの範囲にあります..つまり、ここではループのために使用されます – dhS

+0

はあなたのものによって異なります毎日の集まり、発生のカウント、ある日の実際の記録どちらかの方法ではまだ他のものがある上記のようなdbの要件を減らすには、それを実行して独自のマップを構築するか、達成されているものが何であるかをより明確に考え、HQLクエリまたはraw SQLであっても1つのクエリで十分であれば – Vahid

関連する問題