Hibernate 映射枚举(Enum) 类型的属性

553 阅读1分钟

  在数据库中我们一般用整数或字符串来表示枚举值(有些数据库(如 MySQL)本身带有枚举类型), 而在使用 Hibernate 时实体对象中也用 Integer 或 String 来表示枚举就不那么友好了。试想来我们这样定义实体对象的两个属性

  @Entity

  public class User {

  ....

  public Integer type; //0: Individual 类型,1: Company 类型

  public String gender; //可取值 Male 和 Female

  }

  这样的定义很不严谨,type 和 gender 理论上可取任何值,这会造成表中数据的混乱。其实 Hibernate 在 Java 实体对象中是可以直接用枚举类型与数据库中的整数或字符串映射,需用到 @Enumerated 注解