0

2 つのドメイン クラスがあります。

class A {
    int id
    static hasMany = [bs: B]
}

class B {
    int id
}

GORM を使用して、特定の ID を持つ B インスタンスに関連するすべての A インスタンスを見つけることはできますか?
私は試した:

A.findAllByBs(B.get(bid))

しかし、次のエラーが表示されます。

Class: java.sql.SQLException
Message: No value specified for parameter 1
4

1 に答える 1

2

ゴームのドキュメントから

アソシエーションのクエリ

アソシエーションは、プロパティ名に一致するノードを持つことで照会できます。たとえば、Account クラスに多くの Transaction オブジェクトがあるとします。

class Account {
   …
   static hasMany = [transactions: Transaction]
   …
}

プロパティ名 transaction をビルダー ノードとして使用して、この関連付けをクエリできます。

def c = Account.createCriteria()
def now = new Date()
def results = c.list {
    transactions {
        between('date', now - 10, now)
    }
}

上記のコードは、過去 10 日間にトランザクションを実行したすべての Account インスタンスを検索します。このような関連付けクエリを論理ブロック内にネストすることもできます。

def c = Account.createCriteria()
def now = new Date()
def results = c.list {
    or {
        between('created', now - 10, now)
        transactions {
            between('date', now - 10, now)
        }
    }
}

したがって、これは機能するはずです:

def c = A.createCriteria()
def results = c.list {
    bs {
        // Conditions...
    }
}

それが役立つか、従う方法のヒントを与えることを願っています.

于 2012-09-20T13:38:20.923 に答える