从0开始的Hibernate枚举插入应该从1开始

时间:2012-05-16 08:05:24

标签: java hibernate

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

Enum类

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>

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我相信正确的语法是

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

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

答案 2 :(得分:-1)

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

public enum ServiceRequestType {
    REGISTERED, REJECTED, DONE;

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

调出时使用.getIndex方法

ServiceRequestType.REGISTERED.getIndex()