| 

.NET C# Java Javascript Exception

Grails und JEE

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.


Grails und JEE

grails-beginner - 14.05.2010 19:22
Hallo zusammen,

ich experimentiere seit einigen Tagen mit Grails (version 1.2.x) und bin erstaunt wie schnell man gute Ergebnisse bekommt. Allerdings stoße ich immer wieder auf Probleme, welche Anlass zu diesem Post geben :)

Ich möchte zwei Fragen stellen:

1. m:n-Beziehungen
Ich habe verschiedene Tutorials und Bücher gelesen. Diese behandeln immer nur den einfachsten aller Fälle. Was ist aber, wenn folgende Tabelle erstellt werden soll:

USER_ARBEITET_AN_PROJEKT( user_id, projekt_id, kommentar).

Prinzipiell kann ich das über 1:n beziehungen umbauen, aber ich finde es als m:n schöner (sofern 4. und 5. NF nicht verletzt werden). Natürlich möchte ich an dieser Stelle keine Diskussion vom Zaun brechen, ob mein Beispiel und die Modelierung sinnvoll sind, sondern ein Best-Practise, wie dieses modelliert wird. Zum einen als Domain-Klasse und natürlich die entsprechenden Mappings.

2. Grails und JEE-Anwendung. Kommunkation und gemeinsame Datenbasis
Ich habe den Fall, dass ich Grails als "Front-End" benutzen möchte.
Im Back-End soll z.B. eine JEE-Anwendung laufen (kann auch erstmal nur eine einfache Java-Anwendung mit Kommunikation über Sockets (RMI oder ähnliches) sein).
Die Datenbasis beider Anwendungen ist identisch.
Die JEE-Anwendung im Backend ermittelt in regelmäßigen Abständen einen konsistenten Zustand des Systems.
Das Front-End (Grails) soll über ein Web-Interface die JEE-Anwendung mit Befehlen füttern und den konsistenten Zustand der JEE-Anwendung anzeigen.

Kann ich den GORM-Mechanismus in der JEE-Anwendung nutzen?
Oder muss ich aus den Domain-Klassen Java-DTOs machen und das hibernate-Mapping für die JEE-Anwendung manuell implementierne?
Gibt es hierfür ein paar Tipps, Best Practices oder anhaltspunkte, wie ich vorgehen kann?

Viele Grüße
grails-beginner


Re: Grails und JEE

christian - 18.05.2010 15:12
> Was ist aber, wenn folgende Tabelle
> erstellt werden soll:
>
> USER_ARBEITET_AN_PROJEKT( user_id, projekt_id,
> kommentar).
>
> Prinzipiell kann ich das über 1:n beziehungen
> umbauen, aber ich finde es als m:n schöner (sofern
> 4. und 5. NF nicht verletzt werden).

Versuche mal etwas weniger in Tabellen und mehr in Objekten zu denken. Wenn man das als mit Objekten macht, hätte man eine Klasse "Mitarbeiter" und eine Klasse "Projekt". Wenn die Beziehung von beiden Seiten navigierbar sein soll, hat jede Seite eine Liste, die die Referenzen zur anderen Seite (Projekte oder Mitarbeiter) enthält. m:n-Relationen kannst du mit Grails auch direkt verwenden.

> 2. Grails und JEE-Anwendung.

Was verstehst du unter einer "JEE-Anwendung"? Ohne mehr darüber zu wissen, kann ich nur ganz allgemein sagen, dass du die Schnittstellen der Anwendung nutzen solltest und nicht hintenrum an der DB herum spielen solltest. Falls die Anwendung z. B. REST-Dienste bereitstellt, sollte die Grails-Anwendung diese nutzen.

Gruß
Christian


Re: Grails und JEE

milkyman - 18.05.2010 16:32
Zum denken in Objekten:
Mir ging es lange Zeit genauso wie dir. Früher wurde halt auch bei der Datenbank angefangen und erstmal das ERM erstellt. Bei Grails sind aber die Domains der Startpunkt.
Aus meiner Sicht: 1:n zwischen Projekt und Kommentar und 1:n zwischen Benutzer und Kommentar. D.h. der Kommentar hat u.a. die Attribute Projekt und Benutzer. Das ist sogar in der Datenbank vertretbar und insgesamt in Grails leichter handhabbar als ein n:m.

Zum Grails + JEE:
Wenn du den Luxus hast auf der grünen Wiese anzufangen, erstell dir z.B. mit Grails die Datenbank und lasse dir von Hibernate die XML usw. für das JEE Backend erstellen.

Bye,
Horst


Re: Grails und JEE

grails-beginner - 18.05.2010 23:56
Hallo milkyman.

Danke für deine Antwort... ja, du hast Recht. Ich muss umdenken. Aber das kriege ich hin :)

Wie kann ich mit Hibernate die XML generieren? Kannst du mir da einen Tipp geben? Habe nichts diesbezüglich gefunden....

Viele Grüße
grails-beginner


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Grails und JEE" 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.