@ManyToOne(optional=false) と @Column(nullable=false) の違いは何ですか? 質問する

@ManyToOne(optional=false) と @Column(nullable=false) の違いは何ですか? 質問する

JPA では、属性optional=falseとアノテーションをいつ使用すればよいのかわかりません@Column(nullable=false)。違いは何ですか?

ベストアンサー1

@Column(nullable=false)スキーマを生成するための命令です。クラスから生成されたデータベース列は、実際のデータベースでは null 不可としてマークされます。

optional=falseは実行時命令です。これが行う主な機能は、遅延読み込みに関連しています。optional=false を設定することを忘れなければ、コレクションにマップされていないエンティティを遅延読み込みすることはできません (Hibernate は、null が不可能であると指示しない限り、そこにプロキシが必要か null が必要かがわからないため、プロキシを生成できます)。

おすすめ記事