0

列挙型を使用してデータベースに挿入すると、すべての型の値は 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>
4

3 に答える 3

1

java5 列挙型を使用できます。hibernate を使用した完全な列挙型の例については、このリンクを確認してください。問題がある場合はお知らせください。

于 2012-05-16T08:24:46.933 に答える
0

正しい構文は

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

intから列挙型を取得したい場合は、次のことができますEnum.ToObject(typeof(ServiceRequestType), 1)

于 2012-05-16T08:12:49.347 に答える
-1

さて、私はこの単純な問題の簡単な解決策を見つけられませんでしたが、ここに1つあります

public enum ServiceRequestType {
    REGISTERED, REJECTED, DONE;

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

また、呼び出すときは.getIndexメソッドを使用します

ServiceRequestType.REGISTERED.getIndex()
于 2012-05-16T19:45:47.890 に答える