私は学生のクラスを持っています
class StudentClass {
String name
static hasMany = [students: Student]
}
そして学生
class Student {
String name
}
生徒は好きなだけクラスに参加できます。
['Tom', 'Angelika', 'Timmy'] などの生徒名のリストに基づいてクエリを作成するにはどうすればよいですか。
そして、事前に私が本当にやりたいこと: 検索リストから少なくとも1つの名前が学生リストにあるクラスのリストを取得し、そのリストにある検索リストからの学生の量でこのリストをソートします.
私はかなり長い間その問題に取り組んでいます:/ HQL を使用してこれを行うべきかどうかはわかりません。どんな提案でもいいでしょう
編集:データベースに保存されている次のオブジェクトのクエリ結果として取得したい例を次に示します(簡単な例として、名前属性を持つ学生オブジェクトの代わりに学生の名前を使用します)
StudentClass(name: 'Physics', students: ['Timmy', 'Herbert', 'Christian', 'Martha'])
StudentClass(name: 'Economics', students: ['Franz', 'Paul', 'Joseph'])
StudentClass(name: 'Sports', students: ['Timmy', 'Angelika', 'Christian', 'Jasmine'])
StudentClass(name: 'Math', students: ['Tom', 'Emelie', 'Angelika', 'Timmy'])
これら 4 つの学生クラスは、データベース内で永続的です。
ここで、リストに指定された学生のうち少なくとも 1 人を含むすべての学生クラスを照会したいと考えています。この検索リストには、たとえば ['Tom', 'Angelika', 'Timmy'] を含めることができます。この場合、検索リストの実際にそのクラスに何人の学生がいるかによって結果を並べ替える必要があります。
- 数学 - 3 人全員がそのクラスに属しています
- スポーツ - 検索リストの 2 人の生徒がスポーツ クラスにいます
- 物理学 - 1 人の生徒が物理学のクラスにいます
経済学のクラスは、検索リストの学生がそのクラスに含まれていないため、返されるべきではありません。
Hibernate Documentationのドキュメント全体を読みましたが、ここで「一部」と「要素」が役立つと思いますが、私の問題はソートと可変数の検索語を持つことです。