通常、SQL クエリを直接実行することはなく、GORM を使用してそれらを処理します。
ドメイン クラスを双方向の関連付け (一方向の関連付けはサポートされていません) として設定できる場合は、次のようにすることができます。
class classA {
static constraints = {
}
static mapping = {
bList sort :'name', order:'asc'
}
static hasMany = [bList: classB]
}
そして今クラスB:
class ClassB {
static constraints = {
}
static belongsTo = [classAInstance: classA]
String name
}
これをBootStrap.groovy
ファイルに追加して、いくつかのインスタンスを追加しました。
class BootStrap {
def init = { servletContext ->
def a = new ClassA()
def b1 = new ClassB(name: 'Andrew')
def b2 = new ClassB(name: 'Lisa')
def b3 = new ClassB(name: 'Walter')
def b4 = new ClassB(name: 'Brandon')
def b5 = new ClassB(name: 'Cathy')
a.addToBList(b1)
a.addToBList(b2)
a.addToBList(b3)
a.addToBList(b4)
a.addToBList(b5)
a.save()
}
def destroy = {
}
}
次に、これは私がテストに使用したコントローラーです。
class TestController {
def index() {
def aInstance = ClassA.get(1)
def lst = aInstance.bList
lst.each { println it.name }
}
}
http://localhost:8080/test/test/index
stdout が印刷された場所に移動して確認できるはずです。
Andrew
Brandon
Cathy
Lisa
Walter
これの特定の部分を行うためのより良い方法がいくつかあるかもしれませんが、これは私が頭のてっぺんから考えることができるものです...