2012-09-20 54 views
0

我有兩個領域類:的Grails GORM許多一對多的特性

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

class B { 
    int id 
} 

我可以使用GORM找到所有相關的A B實例與給定id的實例?
我想:

A.findAllByBs(B.get(bid)) 

,但我得到了以下錯誤:

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

回答

2

從格姆文檔

查詢協會

協會可以通過具有節點查詢匹配屬性名稱。例如說Account類有許多的交易對象:

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

我們可以通過使用屬性名事務作爲構建器節點查詢該協會:

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

上面的代碼會發現所有的客戶實例在過去10天內完成了交易。您可以邏輯塊中嵌套這種關聯查詢:

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... 
    } 
} 

希望它可以幫助或者提供如何遵循任何提示。

+0

完美的,它的作品! –

+0

@AndreaColleoni我很高興:) – axierjhtjz