3

次のマッピングがあります

@Entity
@SequenceGenerator(name="sacpSequenceGenerator", sequenceName="SACP_SEQ")
public class Sacp {

    private Integer id;


    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sacpSequenceGenerator")
    public Integer getId() {
        return this.id;
    }

    // other setter's and getter's
}

SACP テーブルは次に従ってマッピングされます。

ID NUT NULL NUMBER(4) 

Sacp インスタンスを保存しようとすると、Hibernate が文句を言う

ORA-01438: 指定された精度よりも大きな値がこの列に許可されています

Integer の代わりに Long を使用する場合でも、同じエラーがスローされます

修正するにはどうすればよいですか?

4

1 に答える 1

2

私はこれを見つけました

SEQ_GEN は、my_sequence という名前のシーケンスを使用してシーケンス ジェネレータを定義します。このシーケンス ベースの hilo アルゴリズムに使用される割り当てサイズは 20 です。このバージョンの Hibernate Annotations は、シーケンス ジェネレーターで initialValue を処理しないことに注意してください。デフォルトの割り当てサイズは 50 であるため、シーケンスを使用して毎回値を取得する場合は、割り当てサイズを 1 に設定する必要があります。

そして今、それはうまく動作します

于 2009-11-13T15:02:01.197 に答える