Ich habe eine Domäne mit n Datenquellen eingerichtet (wir nennen sie hier 2). Ich muss zur Zeit diese Weise die Objekte für Funde usw. zugreifen ...So extrahieren Sie die Datenquellenauswahl auf DRY-Art mit GORM
// DS1
Item.find(id)
// DS2
Item.ds2.find(id);
Dies funktioniert ok auf einem kleinen logischen Funktion, aber wenn es eine Menge Funde sind und speichert sie macht eine sehr un-DRY-Umgebung .. in JS.
if(isDs1){
Item.find(id)
...
}
else{
Item.ds.find(id)
...
}
ich war ...
String ds = isDs1 ? 'ds1' : 'ds2'
Item[ds].find(id)
Aber dies ist nicht möglich, in Groovy so etwas wie dieses denken (?)
Gibt es einen anderen Weg, dies auf ziemlich trockene Weise zu tun?
aktualisiert
für diejenigen, die meine DataSource.groovy verwechselt werden würde wie folgt aussehen ...
environments {
development {
datasource_ds1{
...
}
datasource_ds2{
...
}
}
}
Es würde helfen, wenn Sie den Inhalt (oder den Schein des Artikels) gepostet haben. Sie können die Daten mit abfragen. 'executeQuery', findBy, FindAllBy usw. Der Ansatz, mit dem Sie Ihr Problem lösen, könnte das Problem erschweren. Warum benutzt du '' '' Item.find (id) Und danach eine Item.ds.find (id)? '' '** Item.ds ** ist auch ein Knoten? Bitte erweitern Sie die Beschreibung Ihres Problems. :] –
Haben Sie schon einmal mit mehreren Datenquellen gearbeitet, die in Ihrem Datasources.groovy konfiguriert wurden? Ich werde bearbeiten, aber das ist ein Kommentar, keine Antwort. – Jackie