Java Hibernate枚举插入从0开始,应从1开始

Java Hibernate枚举插入从0开始,应从1开始,java,hibernate,Java,Hibernate,当我使用枚举类型并将其插入数据库时,所有类型值都从0开始,而不是从1开始。任何简单的+1修正都不是好的解决方案 枚举类 public enum ServiceRequestType { REGISTERED(1), REJECTED(2), DONE(3); int value; ServiceRequestType(int value) { this.value = value; } } 还有hibernate映射 <prope

当我使用枚举类型并将其插入数据库时,所有类型值都从0开始,而不是从1开始。任何简单的+1修正都不是好的解决方案

枚举类

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

    int value;
    ServiceRequestType(int value) {
        this.value = value;
    }
}
还有hibernate映射

    <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>

ee.ttu.support.model.domain.service.ServiceRequestType

我认为正确的语法是

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

如果要从int获取枚举,可以执行以下操作:
enum.ToObject(typeof(ServiceRequestType),1)

可以使用java5枚举类型。检查hibernate的完美枚举示例链接。如果您有问题,请告诉我。

对于这个简单的问题,我没有找到任何简单的解决方案,但这里有一个

public enum ServiceRequestType {
    REGISTERED, REJECTED, DONE;

    public int getIndex() {
        return ordinal() + 1;
    }
}
调用时使用.getIndex方法

ServiceRequestType.REGISTERED.getIndex()

您确定可以在枚举中使用=吗?问题似乎是关于java的,这是无效语法,而不是c#。您完全正确,这是c#语法。这是在我喝咖啡之前。。。¬_¬