Wie wird Enum-Wert mit Hibernate in der DB gespeichert?

8

Ich habe versucht, DB-Tabellen mit zufälligen Daten und durch Hibernate zu füllen.

Aber mein Code füllt inkompatible Daten in Tabellen (nicht genau inkompatibel ist der Index dieses Elements bei enum deklariert, zB: bei ApartmentState - FREE ist das erste Element, das es auf die entsprechende Spalte gesetzt hat es index - 0. Aber Ich möchte oder FREE als enum oder als string) setzen.

Ich konnte nicht herausfinden, warum genau das passiert.

Hier ist ein Codeausschnitt:

%Vor%

Ich muss am Tisch einige Enum-Werte, wie Bewertung (2, 3, 4) und Schlafplätze (1, 2 ..) ausfüllen.

Aber das bringt falsche Daten in die Tabelle.

Hier ist Inhalt an der Werkbank:

Warum setzt es nur den Index, nicht als String oder als Enum.
Wie kann ich dies in Zukunft bei gewünschtem Wert wiederherstellen?

Hier ist ein Auszug aus der Apartment-Klasse:

%Vor%

Für mich ist das Beste, enum als Enum (möglicherweise in MySql workbench) oder als String (und name() und valueOf() von Enum-Klasse) zu setzen.

Aber wie man es mit Hibernate implementiert.

Wie man dieses Problem löst?

    
nazar_art 23.02.2014, 16:55
quelle

2 Antworten

17

Sie können folgende Aufzählung hinzufügen, um anzugeben, dass die String-Darstellung beibehalten werden soll:

%Vor%     
Frederic Close 23.02.2014, 16:58
quelle
2

Verwenden Sie diese Anmerkung auf Feldebene:

%Vor%     
gipinani 23.02.2014 16:57
quelle

Tags und Links