Je ne trouve vraiment pas d'exemple de mappage JDBC enum. Est-ce que enum est réellement supporté par JDBC?Les enums sont-ils pris en charge par JDBC?
Je travaille avec MySQL. J'ai une colonne enum, et voudrais mapper à Java enum.
Je ne trouve vraiment pas d'exemple de mappage JDBC enum. Est-ce que enum est réellement supporté par JDBC?Les enums sont-ils pris en charge par JDBC?
Je travaille avec MySQL. J'ai une colonne enum, et voudrais mapper à Java enum.
JDBC ne prend pas en charge les énumérations.
Vous pouvez convertir une chaîne à un ENUM, donc si vous avez un enum Java vous pouvez faire quelque chose comme
MyEnum enumVal = MyEnum.valueOf(rs.getString("EnumColumn"));
Vous devez garder votre java ENUM et mysql ENUM en synchronisation bien. MyEnum.valueOf() peut lancer IllegalArgumentException s'il n'y a pas de mappage à partir de la chaîne, ou NullPointerException si vous obtenez une valeur nulle à partir de la base de données.
Voici une solution générique que nous utilisons pour convertir des valeurs JDBC en enums Java.
param = Enum.valueOf((Class<? extends Enum>)dbField.getField().getType(), (String) param);
où param est la valeur du champ dans la DB, et le dbField est le java.reflect.util.Field, où mettre la valeur à