2012-05-16 73 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()