Propel, Creole/JDBC: enum und set?
am 02.11.2006 15:31:54 von Karsten WutzkeWie verarbeitet denn Propel MySQL enum/set-Typen? Soweit ich weiß gibt
es keinen enum oder set-Typen in Propel, da Creole diese Typen auch
nicht kennt, das wiederum weil JDBC (auf dem Creole basiert) keinen
enum oder set Typ kennt.
Wie kann man denn trotzdem enums hinbekommen? Mit enums simulieren
könnte es gehen:
1 Eine eigene Tabelle für jeden enum: möcht ich net, zu kompliziert.
2 Man könnte eine Propel-Klasse schreiben, die zb als statische
Variable alle Zustände enthält, beim Zugreifen/Setzen müssen die get
und set Methoden von Subklassen eben die Werte abchecken, ob die valid
sind.
3 Denkbar wäre ansonsten für jeden Zustand eines enums eine eigene
Subklasse zu schaffen. Also als Basisklasse zb Gender (abstrakt) und
die Subklassen wären zb Male, Female und Mixed (alle extends Gender).
Im schema.xml gibt man für die Basisklassen per inherit die Subklassen
an, at runtime ließen sich die entsprechenden Statusobjekte kreieren
und die getter und setter müssten mit diesen Basisklassen umgehn
können. Iss aber auch mehr Aufwand als nötig maybe.
Was iss denn "am besten"?
Wird es in Propel bzw. Creole jemals einen enum oder set Typen geben?
Falls ja finde ich das längst überfällig...
Karsten