【Hibernate】Hibernate如何映射枚举类型

问题:

Java BO类Gender是枚举类型,想在数据库中存成字符串格式,如何编写hbm.xml?

public enum Gender{	
  UNKNOWN("Unknown"), 
  MALE("Male"), 
  FEMALE("Female");
	
  private String key;
  private Gender(final String key) {
    this.key = key;
  }
  public getGender(String key) {
    for (Gender gender : Gender.values()) {
      if (key.euqals(gender.getKey()))
        return gender;            
    }
    throw new NoSuchElementException(key);
  }
}


使用UserType:

public class GenderUserType implements UserType {  

    private static int[] typeList = {  Types.VARCHAR};  

  /*
   * Return the SQL type codes for the columns mapped by this type. 
   * The codes are defined on <tt>java.sql.Types</tt>. */
  /**设置和Gender类的sex属性对应的字段的SQL类型 */ 
  public int[] sqlTypes() {
     return typeList;
  }

  /*The class returned by <tt>nullSafeGet()</tt>.*/
  /** 设置GenderUserType所映射的Java类:Gender类 */
  public Class returnedClass() {
     return Gender.class; 
  } 

  /** 指明Gender类是不可变类 */ 
  public boolean isMutable() {
     return false;
  }

  /*
  * Return a deep copy of the persistent state, stopping at entities and at
  * collections. It is not necessary to copy immutable objects, or null
  * values, in which case it is safe to simpl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值