特定の列を として指定するマッピング ファイルがありますnot-null="true"
。NULL
Oracle データベースではテーブルの列が に設定されているため、これは間違いです。しかし、Hibernate がこれを「無視」していたため、マッピング ファイルを作成してから 1 年以上経った今でも、そのことに気付きませんでした。それは可能ですか?
わかりやすくするために。データベースで:
CREATE TABLE db.my_table
(...)
my_column NUMBER(10,0) NULL, (...)
マッピング ファイル:
<column name="MY_COLUMN" precision="10" scale="0" not-null="true">
次に、Java コードで:
getHibernateTemplate().saveOrUpdate(myEntity);
getHibernateTemplate().flush();
このコードは私たちの環境で動作しています。いつもそうでした。しかし、一部のクライアントには問題がot-null property references a null or transient value
あり、コードをデバッグしたときに意味がありませんでした。私の知る限り、このコードは決して実行できないはずです。
もちろん、クライアントの問題を解決するのは簡単です。マッピング ファイルを修正して、エンティティが適切に表現されるようにするだけです。しかし、ここでの本当の問題は、なぜ Hibernate がそれについて文句を言わないのかということです。
ここで、Hibernate の経験が豊富な他のエンジニアに尋ねましたが、誰もこれを見たことがありません。
では、誰かヒントをいただけませんか?
編集:テスト環境とクライアントの両方がまったく同じコードを実行していることを強調したいだけで、どちらの場合も、myEntity
オブジェクトのmyColumn
プロパティが に設定されていNULL
ます。それで、私を困惑させているのは、なぜ私たちの環境で例外が発生しないのかということです.