Comment faire une carte personnalisée énumérés entier ordinaux avec mise en veille prolongée?
J'ai un enum classe nommée Statut de
public enum Status {
PENDING(0), SUCCESS(1), FAILED(-1);
private int st;
private Status(int st){
this.st = st;
}
}
et de l'autre classe j'essaie de carte ce statut enum
public void setStatus(Status status) {
this.status = status;
}
@Enumerated(EnumType.ORDINAL)
public Status getStatus() {
return status;
}
lorsque j'exécute ce code, j'obtiens
java.lang.IllegalArgumentException: Inconnu valeur ordinale pour enum données de la classe.Statut: -1
au org.mise en veille prolongée.type.EnumType.nullSafeGet(EnumType.java:93)
au org.mise en veille prolongée.type.CustomType.nullSafeGet(CustomType.java:124)
au org.mise en veille prolongée.type.AbstractType.hydrate(AbstractType.java:106)
au
mais j'ai déjà -1 dans enum définition.
OriginalL'auteur user1479203 | 2012-07-16
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir votre propre
UserType
qui définit le mode mise en veille prolongée doit mapper ces énumérations.Noter que l'ordinal définit l'index de la valeur d'enum et donc
FAILED
aurait l'ordinal 2. Pour la carte enum l'aide de ses propriétés de votre besoin d'unUserType
mise en œuvre.Quelques liens:
OriginalL'auteur Thomas
Voici une solution où une chaîne de caractères de l'étiquette est utilisée à la place d'un int id, cependant, il est simple de s'adapter.
OriginalL'auteur user3099799
Je voudrais suggérer solution de contournement suivante. J'ai d'abord été supprised il a travaillé, mais il est vraiment très simple:
Pour enum:
classe
si vous êtes en utilisant hibernate dans hibernate fichier xml, il serait:
qu'est-ce
OriginalL'auteur Dariusz Dudziński