Non riesco davvero a trovare un buon esempio di mappatura JDBC enum. L'enum è effettivamente supportato da JDBC?Le enumerazioni sono supportate da JDBC?
Sto lavorando con MySQL. Ho una colonna enum e vorrei mappare a qualche enum Java.
Non riesco davvero a trovare un buon esempio di mappatura JDBC enum. L'enum è effettivamente supportato da JDBC?Le enumerazioni sono supportate da JDBC?
Sto lavorando con MySQL. Ho una colonna enum e vorrei mappare a qualche enum Java.
JDBC non supporta enumerazioni.
È possibile convertire una stringa in un enum, però, quindi se avete un enum Java si può fare qualcosa di simile
MyEnum enumVal = MyEnum.valueOf(rs.getString("EnumColumn"));
Dovrete mantenere la vostra enum Java e MySQL enum in sincronia però. MyEnum.valueOf() può lanciare IllegalArgumentException se non ci sono mappature dalla stringa, o NullPointerException se si ottiene un valore nullo dal db.
Ecco alcune soluzioni generiche che stavano utilizzando per convertire i valori JDBC in enumerazioni Java.
param = Enum.valueOf((Class<? extends Enum>)dbField.getField().getType(), (String) param);
dove param è il valore del campo nel db, e la dbField è il java.reflect.util.Field, dove mettere il valore