これらが のフィールド/ゲッターに表示される場合
@Entity
、それらの違いは何ですか? (エンティティをHibernateを通じて永続化します)。それぞれはどのようなフレームワークや仕様に属していますか?
@NotNull
は にありますjavax.validation.constraints
。Javadocにはjavax.validation.constraints.NotNull
こう書かれています注釈付き要素は null であってはなりません
しかし、データベース内の要素の表現については言及されていないので、なぜ
nullable=false
列に制約を追加するのでしょうか?
ベストアンサー1
@NotNull
は、JSR 303 Bean Validationアノテーションです。データベース制約自体とは関係ありません。ただし、Hibernate は JSR 303 のリファレンス実装であるため、これらの制約をインテリジェントに取得し、データベース制約に変換します。つまり、1 つの価格で 2 つが得られます。は、@Column(nullable = false)
列が null でないことを宣言する JPA の方法です。つまり、前者は検証用であり、後者はデータベース スキーマの詳細を示すためのものです。検証アノテーションに関して、Hibernate から追加の (そして歓迎すべき!) 支援を受けるだけです。