0

テーブルに行を挿入しようとすると、休止状態から次のエラー メッセージが表示されます。

org.hibernate.exception.ConstraintViolationException: 列 'priority' を null にすることはできません

値を設定するためにコードに行を入れることができることは知っていますが、プログラムがデータベースのデフォルト値に依存している他の多くのインスタンスがあります (db は mysql です)。

hbm.xml ファイルにデフォルト値を指定できることをどこかで読みましたが、休止状態はそれを認識していません。JobQueue.hbm.xml の対応するセクションを次に示します。

    <property name="priority" type="integer">
        <column name="priority" default="0" />
    </property> 

別のオプションは、生成される JobQueue.java ファイルを変更することだと思います (私は eclipse hibernate ツールを使用して hibernate クラスを自動生成しています) が、今のところ hbm.xml 構成を機能させたいと思います。

休止状態ライブラリのバージョン 4.1.3 と Eclipse 休止状態ツール 3.4.0.x を使用しています。

4

3 に答える 3

3

default="0"データベーススキーマを生成するSchemaExportにのみ関連します。それ以外の休止状態は、この設定を完全に無視します。あなたは列のために設定することを試みることができnot-null="true"ます。

于 2012-05-29T10:15:06.233 に答える
3

データベース スキーマ全体を再作成できない場合を除き、変数の初期化でデフォルト値を設定できます。モデルでは、初期化で優先度を 0 に設定します。

あなたのクラスで:

private Integer priority = 0;
于 2013-05-02T21:21:46.367 に答える
0

最終的に JobQueue.java POJO を変更してデフォルト値を設定しました。休止状態ツールのコード生成がこの変更を上書きしないようにするために、コード生成が一時フォルダーにファイルを生成し、必要なファイルが永続的なソースの場所にコピーされるように設定しました。

于 2012-06-04T20:11:21.047 に答える