2012-05-16 131 views
0

那么当我使用枚举类型并插入到数据库中时,所有类型值都从0开始不是1.任何简单的修复+1都不是很好的解决方案。休眠枚举插入从0开始应该从1开始

的枚举类

public enum ServiceRequestType { 
    REGISTERED(1), REJECTED(2), DONE(3); 

    int value; 
    ServiceRequestType(int value) { 
     this.value = value; 
    } 
} 

另外休眠映射。

<property name="type" column="service_request_status_type_fk"> 
     <type name="org.hibernate.type.EnumType"> 
      <param name="enumClass">ee.ttu.support.model.domain.service.ServiceRequestType</param> 
     </type> 
    </property> 

回答

1

您可以使用Java5的枚举类型。检查this链接为完美枚举示例与休眠。让我知道你是否有问题。

0

我相信正确的语法是

public enum ServiceRequestType 
{ 
    REGISTERED = 1, REJECTED, DONE 
} 

如果你想从int枚举,你可以做Enum.ToObject(typeof(ServiceRequestType), 1)

+0

你确定你可以使用=在ENUM中? –

+0

这个问题似乎是关于java,这是无效的语法,而不是c#。 –

+1

你完全正确,这是C#语法。这是在我喝咖啡之前......¬_ – Shagglez

-1

嗯,我没有发现这个简单的问题,任何简单的解决办法,但这里是一个

public enum ServiceRequestType { 
    REGISTERED, REJECTED, DONE; 

    public int getIndex() { 
     return ordinal() + 1; 
    } 
} 

,并呼吁停止使用该.getIndex方法时

ServiceRequestType.REGISTERED.getIndex()