Hibernate对枚举类型映射类EnumType对id的支持问题
1、映射
<property name="type">
<column name="SALECHANNELTYPEID" />
<type name="org.hibernate.type.EnumType">
<param name="enumClass">
com.star.sms.model.system.organization.SaleChannelType
</param>
</type>
</property>
2、枚举类:这里自定义了一个int型的ID
public enum SaleChannelType implements IDatabaseMapping<SaleChannelType> {
// 营业厅
SALEDEPARTMENT(1),
// 呼叫中心
CALLCENTER(2),
// 双向网机顶盒
STB(3);
private int id;
private SaleChannelType(int id) {
this.id = id;
}
public int getDbNumber() {
return id;
}
public SaleChannelType valueOf(int dbNumber) {
SaleChannelType[] es = SaleChannelType.values();
for (SaleChannelType saleChannelType : es) {
if (saleChannelType.getDbNumber() == dbNumber) {
return saleChannelType;
}
}
throw new java.lang.IllegalArgumentException(getClass() + ": "
+ dbNumber);
}
}
3、问题:这样的映射默认是通过索引来得到一个枚举项,我想问问能否通过配置文件使用ID来取得一个枚举项;这样就不会产生,当数据库中但存的是ID为1,但是前台显示的结果是ordial为1的枚举项。