H
HibernateNoob
Gast
Hallo Java-Gemeinde,
ich stehe im Moment vor einem "Problem" bei der Benutzung von Hibernate und Enumerations.
Ich habe eine Enumeration Type, die verschiedene Literale besitzt. In einer anderen Klasse besitze ich ein Attribut vom Typ dieser Enumeration. In der Mapping-Datei dieser Klasse habe ich das nach Recherche wie folgt abgebildet:
[XML]
<property name="entryType" not-null="true" type="de.wiki.persistence.Type" column="entrytype"/>
[/XML]
An dieser Stelle vllt noch der Hinweis darauf, dass ich leider Mapping-Dateien benutzen muss und keine Annotationen verwenden kann/darf.
Das Ganze klappt auch prinzipiell ganz gut. Das Blöde daran ist, wenn ich mir den Datenbestand anschaue, z.B. über die MySQL-Workbench, dann kann ich den Inhalt der Spalte nicht einfach austauschen (was zu Testzwecken am Anfang ganz angenehm wäre). In der Spalte steht also nicht bspw. einfach nur "SIMPLE_ENTRY" oder so für das Literal SIMPLE_ENTRY. Der Grund dafür ist vermutlich, dass in der Datenbank als Typ der Spalte TINYBLOB eingetragen ist.
Kann ich das irgendwie ändern, so dass als Typ z.B. VARCHAR benutzt wird? Ich dachte über @Enumerated(EnumType.STRING) kann man das per Annotation angeben. Dann müsste das doch auch eigentlich über Mapping-Dateien gehen oder?
Ich hoffe ich habe mich nicht undeutlich ausgedrückt und jemand kann mir helfen.
ich stehe im Moment vor einem "Problem" bei der Benutzung von Hibernate und Enumerations.
Ich habe eine Enumeration Type, die verschiedene Literale besitzt. In einer anderen Klasse besitze ich ein Attribut vom Typ dieser Enumeration. In der Mapping-Datei dieser Klasse habe ich das nach Recherche wie folgt abgebildet:
[XML]
<property name="entryType" not-null="true" type="de.wiki.persistence.Type" column="entrytype"/>
[/XML]
An dieser Stelle vllt noch der Hinweis darauf, dass ich leider Mapping-Dateien benutzen muss und keine Annotationen verwenden kann/darf.
Das Ganze klappt auch prinzipiell ganz gut. Das Blöde daran ist, wenn ich mir den Datenbestand anschaue, z.B. über die MySQL-Workbench, dann kann ich den Inhalt der Spalte nicht einfach austauschen (was zu Testzwecken am Anfang ganz angenehm wäre). In der Spalte steht also nicht bspw. einfach nur "SIMPLE_ENTRY" oder so für das Literal SIMPLE_ENTRY. Der Grund dafür ist vermutlich, dass in der Datenbank als Typ der Spalte TINYBLOB eingetragen ist.
Kann ich das irgendwie ändern, so dass als Typ z.B. VARCHAR benutzt wird? Ich dachte über @Enumerated(EnumType.STRING) kann man das per Annotation angeben. Dann müsste das doch auch eigentlich über Mapping-Dateien gehen oder?
Ich hoffe ich habe mich nicht undeutlich ausgedrückt und jemand kann mir helfen.