2017-11-30 8 views
0

I readed this.しかし、それは使用法の明確な答えを教えてくれませんでした。注釈@Column(nullable = false)vs @NotNullの差

テーブルと列を作成するとき。

ケース1:

@Column(nullable = false, length = 14) 
@NotNull 
private String something; 

ケース2:

@Column(length = 14) 
@NotNull 
private String something; 

が、それは同じではありませんか?私は@NotNullが例外を先に投げるので、nullable = falseカラムを行う理由があるのでしょうか?

答えて

1

@Columnはデータベースに関連しています。 Javaコードからデータベーススキーマを自動作成する場合、nullable = falseはNOT NULL列を作成します。これはデータベースにアクセスする他のアプリケーションがある場合に便利です。また、アプリケーションはデータベースにデータを送信する直前にこの制約をチェックすることがあります。

@NotNullはJavaに関連しています。この属性が設定されていないと、Javaは例外をスローします。データベースのコンテキストは必要ありません。

両方のアノテーションは同じように聞こえるが、2つの異なる目的を果たす。ある注釈を他の注釈から自動的に推論するライブラリがあるかもしれませんが、いつでも両方の注釈を使用できます。そうすると、@NotNullは@Columnの前にチェックされます。

+0

したがって、ケース1は100%透明である方が良いですか? – degath

+0

私は答えを編集しました。その約2つの異なる目的。 – Mick

+0

私のfrendを受け入れ、ありがとう、いい日がある:) – degath

関連する問題