Betrachten Sie das folgende Setup: eine MySQL-Tabelle mit einer Spalte, die als „gender enum( „männlich“, „weiblich“)“, ein entsprechendes Java-Enum „Geschlecht“ und eine Person-Entität mit „Geschlecht Geschlecht“. Beim Versuch, die Anwendung zu starten, tritt ein Fehler auf: „Falscher Spaltentyp in MyApp.Person für Spalte Geschlecht. Gefunden: Aufzählung, erwartet: Ganzzahl.“
Standardmäßig , Hibernate erwartet, dass Aufzählungsfelder als Ganzzahlen gespeichert werden. Um anzugeben, dass der Enum-Typ in der Datenbank beibehalten werden soll, verwenden Sie die folgenden Anmerkungen:
<code class="java">@Column(columnDefinition = "enum('MALE','FEMALE')") @Enumerated(EnumType.STRING) private Gender gender;</code>
Alternativ können Sie einen Dummy-Wert für angeben, wenn Sie die Schemagenerierung lieber an Liquibase oder ein SQL-Skript delegieren möchten die Spaltendefinition:
<code class="java">@Column(columnDefinition = "enum('DUMMY')") @Enumerated(EnumType.STRING) private ManyValuedEnum manyValuedEnum;</code>
Dadurch wird sichergestellt, dass Hibernate sich auf die Java-Enumeration und die Datenbankschema-Synchronisierungstools verlässt, um die korrekten Enumerationswerte beizubehalten.
Das obige ist der detaillierte Inhalt vonWie behält man den Enum-Typ im Ruhezustand bei, wenn man mit der „enum'-Spalte von MySQL arbeitet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!