2012-05-23 30 views
2

我試圖做一個SQL使用Grails,我不能讓它那麼遠,Grails的多對多SQL

我有3個領域類:

class Device { 
    String imei 
    List nodes 
    static hasMany = [nodes:Node] 
} 

class Node { 
    Integer signal 
    static belongsTo = [network : Network] 
} 

class Network { 
    String ssid 
    static hasMany = [nodes: Node] 
} 

所以,它與3個桌子有很多關係(我需要這個第三個桌子,因爲我需要在其中有一些變量)

我需要找到一個設備的所有網絡(由imei)。有任何想法嗎..?

謝謝!

回答

2

並不:

def networks = Device.findByImei('whatever').nodes*.network?.unique(false) 

辦呢?

+0

好主意,但我試圖找到網絡列表。 findAll的東西...不過,謝謝,我會解決你的問題... – elcadro

+0

@ user1412935這應該返回一個列表,列表中的'Networks'連接到與單個'Device'關聯的所有'Nodes' imei)..你想要什麼? –

+0

是啊!你是對的!唯一的問題是,我需要這樣的東西,但是對於網絡來說有一種「獨特」的東西。我現在的問題是,有很多節點指向同一個網絡,並且最終結果幾次向我顯示相同的網絡。但是,這是近,謝謝! – elcadro