| 

.NET C# Java Javascript Exception

Gorm Mapping bei inheritance - Wie sind die Best Practices?

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.


Gorm Mapping bei inheritance - Wie sind die Best Practices?

weitz.jan - 16.12.2010 23:28
Hallo alle zusammen!
Ich habe heute mit Grails angefangen und habe eine Frage, wie man am besten abgeleitete Domain Classes mit Gorm in einer Mysql Datenbank ablegt.

Angenommen es gibt drei Domainclasses, ClassA, ClassB und Class C mit folgender Eigenschaft:
class ClassA {
   String name
   static hasMany = [objects:ClassC]
}


class ClassB extends ClassA {
   String description
}

Variante1:
Lasse ich nun mein Programm laufen, so werden beide Klassen in Eine Tabelle geschrieben, Id ist auf auto_increment gesetzt. Die Eigenschaften in der Tabelle, die nur für ClassB zutreffen werden für alle Objekte in der Tabelle auf NULL gesetzt. Das finde ich ein wenig undurchsichtig.


Variante2:
Füge ich in Class A Folgendes hinzu:
static mapping ={
      tablePerHierarchy false
}
erhalte ich für ClassA eine TabelleA und ClassB eine TabelleB , Id hat nun kein Autoincrement mehr. Jede Tabelle hat nur die Eigenschaften der jeweiligen Klasse.

Da ClassC nun die Id der ClassA als Foreign Key in der Datenbank speichert, Class C aber genauso gut auch Teil von ClassB sein kann, sorgt Gorm dafür daß die id's in TabelleA und TabelleB niemals identisch sind (bei Variante 2).
Einzig die Gorm Logik verhindert, dass ClassC nicht mehr weiß ob es zu ClassA oder ClassB gehört.


Also meine Frage:
Welche Variante ist sicherer, wenn die Datenbank irgendwie anders befüllt werden sollte? Oder es ein Gorm Update gibt?
Ich habe mich zur Zeit für Variante1 entschieden, da das autoincrement eindeutige id's sicherstellt. So muß ich halt in Kauf nehmen, dass es NULL Zellen gibt.

Was meint Ihr?

Viele Grüße,

Jan


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Gorm Mapping bei inheritance - Wie sind die Best Practices?" 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.