J'ai une table de base de données en utilisant une énumération. Cela fonctionne déjà avec hibernate (en utilisant XML), et j'essaye de le convertir en annotations car c'est l'une des dernières pièces à utiliser encore la notation xml.MySQL enum avec hibernate
La définition de la colonne:
enum('Active','Pending','Cancelled','Suspend')
Les travaux suivants:
<property
name="status"
column="STATUS"
type="string"
not-null="true" />
Cela ne fonctionne pas:
@Column(name = "status")
public String status;
Le style d'annotation conduit à l'exception suivante lors du démarrage: org.hibernate.HibernateException: type de colonne incorrect dans UserDTO pour colum n statut. Trouvé: enum, attendu: varchar (255)
Y a-t-il un moyen pour moi de forcer cela à accepter une chaîne de caractères comme cela a été fait avec la notation XML?
votre solution est correcte au moins pour la base de données MySQL, mais échoue pour les bases de données H2 utilisées dans les tests par exemple (cas de création automatique de schéma). Il semble que cela ne soit pas 100% portable, pour autant que je me souvienne qu'il y ait aussi des problèmes sur PostgresSQL (du moins si nous nous attendons à ce que le schéma soit généré automatiquement). – kornicameister