1

「2,5,6,8,9」のようなカンマ区切りの値を保持する「日」プロパティを持つドメイン クラス Schedule があります。

Class Schedule {
   String days
   ...
}

Schedule schedule1 = new Schedule(days :'2,5,6,8,9')
schedule1.save()

Schedule schedule2 = new Schedule(days :'1,5,9,13')
schedule2.save()

[2,8,11] という指定されたリストから任意の日付を含むスケジュールのリストを取得する必要があります。

Output: [schedule1]

同じ条件クエリまたは HQL を作成するにはどうすればよいですか。役立つ場合は、「,2,5,6,8,9」のように日付の前後にカンマを付けることができます。

ありがとう、

4

2 に答える 2

2

このような非正規化の正当な理由があることを願っています。それ以外の場合は、リストを子テーブルに保存することをお勧めします。

そうしないと、クエリが複雑になります。お気に入り:

  def days = [2,8,11]
  // note to check for empty days
  Schedule.withCriteria {
    days.each { day ->
      or {
        like('username', "$day,%") // starts with "$day"
        like('username', "%,$day,%")
        like('username', "%,$day") // ends with "$day"
      }
    }
  }
于 2011-04-12T08:26:18.730 に答える