| 

.NET C# Java Javascript Exception

constraints size für eine enum

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.


constraints size für eine enum

occurred - 21.04.2010 09:57
Morgen,

in einer Domain Klasse habe ich eine Enum hinzugefügt - funktioniert alles ganz gut.

In den constraints will ich die Feldgr. minimieren:

static constraints = {
myEnum(size: 1..50, nullable: false)
}

Jedoch wird in der Tabelle dann dieses Feld wieder mit varchar(255) erstellt.

Wenn ich meine Grails-App starte bekomme ich auch noch folgende Fehlermeldung:
WARN grails.util.GrailsUtil - [WARNING] Property [myEnum] of domain class com.xxx.MyClass has type [com.xxx.enums.MyEnum] and doesn't support constraint . This constraint will not be checked during validation.

Wie kann ich für Enums die Feldgr. angeben?

Für jegliche Hinweise wäre ich sehr dankbar.

lg
Charlie


Re: constraints size für eine enum

occurred - 21.04.2010 10:09
Hallo,

meine Frage war:
Wie kann ich für Enums die Feldgr. angeben?
( in der Tabelle soll das Feld nur varchar(50) sein )

Ich will die Feldgr. beschränken.
Macht ja keinen Sinn ein Feld mit varchar(255) zu haben, wenn auch varchar(50) groß genug ist.

lg
Charlie


Re: constraints size für eine enum

milkyman - 21.04.2010 10:44
Sehe ich auch so.

Ich frage mich eher, wieso 50 notwendig ist, wieso Textfeld und kein numerisches Feld, in dem die IDs der Enum gespeichert werden.

Weil: Das spart dann wirklich Speicher! :-)

Bye,
Horst


Re: constraints size für eine enum

mpuhlmann - 21.04.2010 10:59
Hallo Horst,

ich würde davon abraten, Enums über ihren ordinalen Wert in die DB zu legen. Gerade, wenn sich der Wertebereich einer Enum ändert, kann es hier schnell zu völlig intransparenten Fehlern führen.

Fügt man etwa einen neuen Wert zu einer Enum hinzu, bekommt er ja den ordinalen Wert der Position in der Enum-Definition. Wenn nun aber der neue Wert irgendwo dazwischen gepackt wurde (weil alphabetisch sortiert im Code), führt dies ja zu einer Veränderung der ordinalen Werte anderer Enumwerte.
Gerade bei existierenden Datenbeständen kann dies, wie ja leicht zu erkennen ist, zu ganz netten Problemen führen.

Auch ist das Debugging leichter mit Enum-Werten als Strings, da diese ja direkt lesbar in der DB stehen. Bei Zahlen müsste man immer die Definition der Enum vor Augen haben.

Gruss

Marco


Re: constraints size für eine enum

occurred - 21.04.2010 11:18
Hallo,

ok, dann werde ich die Gr. einfach so belassen.
Ich war eben immer einer Jener die die DB so gut wie möglich hinbringen wollten.

lg
Charlie


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "constraints size für eine enum" 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.