web-dev-qa-db-fra.com

Mappage enum sur string en veille prolongée

J'ai un modèle de catégorie Hibernate:

@Entity
@Table(name = "category")
public class Category {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name = "id")
    private long id;

    @Column(name = "type")
    private String type;

qui ont un champ de type chaîne. J'ai aussi un enum Java qui représente un type de catégorie:

public enum CategoryType {
    INCOME, OUTCOME;
}

que je voudrais utiliser à la place du type de chaîne. Le code SQL accepte deux valeurs distinctes dans le paramètre varchar: soit CategoryIncome ou CategoryOutcome. Je voudrais que la classe de modèle Category accepte une variable enum - et mappe-la d'une manière ou d'une autre avec la chaîne chaque fois que hibernate le demande.

C'est possible?

79
ducin

Oui, c'est possible CA devrait etre:

@Enumerated(EnumType.STRING)
@Column(name = "category_type")
private CategoryType categoryType;
156
dcernahoschi