Grailsの新機能です。2つのクエリ結果をマップに結合するにはどうすればよいですか?
私はこのようなドメインクラスがあります。
class DaySchedule {
Date Todaysdate
String startTime;
String endTime;
String task
int priority
boolean completed
static belongsTo = [ schedule : Schedule ]
}
私はいくつかのテストデータのブートストラップとしています。
- 私は特定の
Todaysdate
に属している(bootstrap.groovy
に格納されている)各task
を選択する必要があります。今、私は、以下の条件で、クエリを実行します。たとえば、
私は私のBootStrap.groovy
でこれらのステートメントを持っている場合:今
//other codes
def daySchedule3 = new DaySchedule(Todaysdate:new Date(),
startTime:"6pm",endTime:"10pm",
task:"ReaD git...",completed:false)
def daySchedule4 = new DaySchedule(Todaysdate:new Date()+1,
startTime:"10am",endTime:"12pm",
task:"Read MySQL....",completed:false)
はっきりtask
、ReaD git...
は(私はそれにnew Date()
を通過してきたように、今日である)の日に属します。私はこのコードに問題がある
def allTasks = DaySchedule.findAllByTaskIsNotNull()
def dates = allTasks.collect { it.Todaysdate }
def tasks = dates.collect {
def queryParameter = new DaySchedule(Todaysdate:it)
def todaysWork = DaySchedule.findAll(queryParameter)
todaysWork.task
}
:私はこのような部分的な解決策を思い付いたこれらを検索するに
。 dates
とtasks
でcollectEntries
メソッドを使用することができず、tasks
の値を持つ特定の日付(つまりdates
)のマップに変換することができませんでした。 (これは私が試したものです!)
今私は孤独になりました。私はtasks
に属するdates
を推測する方法を見つけることができませんでした。
その他の解決方法はありますか?
ありがとうございます。
'groupBy'メソッドはキー値として' null'なのでを返しています。 'todaysDate'ではなく... –
' findAllByTaskIsNotNull'から日付が戻ってくるのでしょうか?また、大文字の権利を得ていることを確認してください。あなたのコードに 'Todaysdate'がありますが、もっと一般的な' todaysDate'を使用しました。 – ataylor
ya私は 'Todaysdate'を正しく変更しました。 'findAllByTaskIsNotNull'からすべての日付が正しく戻ってきます。私は問題が 'clone()。clearTime()'コードのこの行であると思います... –