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])
}
を必要とすべきではない要するに
between
を使用1ヶ月... 1日から30日までの日付の範囲をチェックするためのgormを書く方法は、日付が2つの列startdateとenddateの範囲にあります..つまり、ここではループのために使用されます – dhS
はあなたのものによって異なります毎日の集まり、発生のカウント、ある日の実際の記録どちらかの方法ではまだ他のものがある上記のようなdbの要件を減らすには、それを実行して独自のマップを構築するか、達成されているものが何であるかをより明確に考え、HQLクエリまたはraw SQLであっても1つのクエリで十分であれば – Vahid