在hibernate中将枚举映射到string

我有一个类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; 

其中有一个stringtypes字段。 另外我有一个Java枚举代表一个类别的types:

 public enum CategoryType { INCOME, OUTCOME; } 

我想用来代替stringtypes。 SQL在varchar参数中接受两个不同的值: CategoryIncome或者CategoryOutcome 。 我希望类模型类接受一个枚举variables – 并将其映射到string,每当hibernate请求它。

可能吗?

是的,是可能的。 它应该是:

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

枚举类

  public enum LevelPriority{ HIGH, MEDIUM, LOW } 

Java类

  public class AvisosVO implements Serializable { /** * */ private static final long serialVersionUID = 5372875132849315024L; @Id @GeneratedValue @Column(name = "id") private Integer idAVisosVO; private LevelPriority priority; @Enumerated(EnumType.STRING) public LevelPriority getPriority() { return priority; } 

BD

  CREATE TABLE `Avisos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `priority` int(4) NOT NULL, PRIMARY KEY (`id`) ) 

我有一个项目中的代码,它的工作原理。 希望这个例子能够比顶端的评论更好地解释你的问题。