9

このクラスが JPA (JPA 1.0 と Hibernate を使用) にマップされているとします。

@Entity
public class Foo {

    private int bar;

    /* ... */
}
  1. BAR列が NULL に設定されているレコードをロードしようとするとどうなりますか?
  2. bar対応する列が NULL の場合のフィールドの設定方法を指定できますか?

ノート

これがベストプラクティスではないことはわかっています。質問は好奇心からであり、次の状況に触発されています。

  • データベース テーブルはステージング テーブルですNOT NULL。制約を追加することは実際的ではありません。悪いデータが予想されます。私のコードのポイントは、データを「実際の」データベースにロードする前に、データを検証、クリーンアップ、および/または拒否することです。
  • 一部のフィールドには許容できるデフォルト値があります。たとえば、booleanデフォルトでfalse.
4

2 に答える 2

12

マテウスのアイデアは偽のデータを導入するため、列に null 値が含まれている可能性がある場合は、むしろオブジェクトを使用します。NULL <> 0!

于 2013-02-15T11:46:32.570 に答える
5
  1. 例外

2.

@Column(name = “bar”, nullable = false, columnDefinition = “bigint(20) default 0″)
private int bar;

それはあなたの問題を解決します。

于 2013-02-15T11:43:39.907 に答える