| 

.NET C# Java Javascript Exception

Re: Grails und Cascading

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Re: Grails und Cascading

milkyman - 29.06.2009 14:58
Hi.

Das mit den "Mitgliedschaften" finde ich einen interessanten Gedanken. :)
Nur sollte sich die Technik nach den Anforderungen richten und nicht umgekehrt.
(Gilt genauso für "deaktivieren statt löschen")

Wenn eine Mitgliedschaft eine attributierte Relation ist und weitere Eigenschaften hat (z.B. Eintrittstermin, individuelle Jahresgebühr, ...), dann ist dein Ansatz fachlich richtig und gut!!!

Wenn es aber nur um eine Zuordnung zwischen Personen und Vereinen geht, scheint es mir zu viel Overhead zu sein. Dann sollte man nur das abbilden, was man auch haben möchte, also direktes n:m. Einen belongsTo Besitzer gibt es dann in der Tat nicht. Denn sowohl Person wie auch Verein können weiter existieren, wenn die Mitgliedschaft beendet wird.

Ich habe in meinem Projekt auch ein n:m von Gruppen untereinander.Keine Ahnung wieso, aber bisher gab es damit nie Probleme. Auch beim Löschen bleiben keine Leichen übrig. Vielleicht sollte ich mir das (selten genutzte) Feature nochmal anschauen und testen. :)

@redfish
Vielleicht kannst du mal deine Domain-Klassen posten, vielleicht wird dann klarer, wo es klemmt.
Ansonsten evtl. mal in Grails Doc Abschnitt 5.5.2.9 anschauen.

Bye,
Horst


Re: Grails und Cascading

christian - 29.06.2009 15:18
Es reicht, wenn du ein Feld wie "isDeleted" in die betreffende Domain-Klasse schreibst. Damit sich das löschen schöner liest, könntest du noch eine Methode dazu packen.

class EineDomainKlasse{
  Boolean isDeleted = false
  void delete(){
    isDeleted = true
  }
}

Entscheidender Nachteil ist aber, dass die dynamischen Finder-Methoden standardmäßig auch als gelöscht markierte Datensätze finden.

Gruß
Christian


Re: Grails und Cascading

rawi - 01.07.2009 17:47
Hallo Horst!

> wieso willst du auf GORM, so ziemlich das Beste,
> was Grails zu bieten hat, einfach verzichten und
> stattdessen alles manuell machen?

Die Vorteile sind mir bewusst. Ich habe nur ein Problem, weil ich noch in Tabellen-Strukturen denke.
In Verbindung damit, scheint es mir einen bedenklichen Umweg zu sein, wenn ich z.B. eine Adresse zu einer Person binde (1:n).
Praktisch speichere ich eine Adresse in tblAdressen mit einem Foreign_key auf die betroffene Person.ID. Und die Geschichte hat's.
1. Obwohl ich die Person.ID habe, mit Grails hole ich zuerst die Person in eine Instanz mithilfe der Person.id
2. Dann generiere ich eine AdressenInstanz aus den Params
3. Dann ADDe ich die Adresse zu der Person.
4. Dann speichere ich die Person!!!
:) :) :)

> Klar, das geht auch und du weißt dann sehr viel
> bewusster, was die Anwendung macht und für den
> Anfang wird deine Anwendung auch performanter
> sein. Aber damit lernst du nicht mit Grails zu
> arbeiten, sondern arbeitest dran vorbei.

Ich habe hier einen Vergleich mit den tollen neuen Frenseher :)
Ich brauche grundsätzlich eine Glotze, um bestimmte Sendungen der Sender zu sehen. Das ist für mich das Wichtigste.
Doch die UltraHochgezüchteten Glotzen heutZuTage sind eher auf HD und DVD getrimmt. Sie bekommen die analogen Signale immer noch in die Kiste, die werden jedoch deutlich schlechter dargestellt, als die frühere Technologie es konnte und noch schlechter als die heutige digitalTechnologie es kann.
Und dann kommt der Verkäufer und sagt mit einem Unterton, als wäre ich von Vorgestern... ja so ist es heutZuTage, man sollte sich andere Medien anschliessen.
Aber alles Interessante ist von Gestern. Man kann nicht nur Discovery-Tierwelt-HD, Sport-HD und DVD sehen.

Grails ist ein ganz toller Fernseher. Einer, den sogar ich bedienen könnte (falls ich mich noch ein Bisschen anstrenge :)
Grails nimmt jedoch die alten interessanten analogen Signale und rechnet sie zuerst hoch auf HD, weil die Innereien so ausgelegt sind. Das Bild wird nicht besser.
Wenn ich von einer größeren Tabelle nur 2 Felder brauche, werden trotzdem alle gelesen.
Und wenn ich nur 1 Feld korrigiere werden alle wieder updatet.
Über das Abenteuer, eine Liste von mehreren geJOINten :) Tabellen, mit WHERE-Bedingung in der 3. oder 4. Tabelle ganz zu schweigen.
Wenn ich Euch, den Profis zuhöre, ist mir klar, das alles ist mit Grails möglich. Nur ich habe damit noch Schwierigkeiten.

> Was "Grails In Action" betrifft, welche Version
> des Buches hast du?

:) Die einzige Version, hätte ich gedacht (2009). War mir nicht bekannt, dass es mehrere Versionen gibt?!

Ich bin derzeit so verbissen in dieser Sache, dass ich es mit Grails bestimmt weiterbringen werde... So gut es geht.
Mein Vorgehen ist jedoch (wahrscheinlich) felhlerhaft: ich kann irgendwie nicht mal mit den einfachen Sachen anfangen, bevor ich (theoretisch) sicher bin, dass ich auch alle anderen möglichen Schwierigkeiten beherschen könnte.

Deswegen die unterschiedlichen Fragen hier im Forum, ohne dass ich zuerst eine praktische Erfahrung vorweisen kann...

Und ich lerne viel von Euch, auch wenn ich selten etwas beizutragen habe...
Dafür noch ein Mal, einen schönen Dank an ALLE!

Und schöne Grüße
Rawi


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Re: Grails und Cascading" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.