エンティティクラスでコードを見つけました:
@Id
@NotNull
@Column(name = "ID")
private Long id;
@Idが既に設定されている場合、 @NotNullアノテーションには値がありますか?
エンティティクラスでコードを見つけました:
@Id
@NotNull
@Column(name = "ID")
private Long id;
@Idが既に設定されている場合、 @NotNullアノテーションには値がありますか?
@NotNull
のような検証目的のためのもの@Size
です。ユーザー入力が正しいかどうかをチェックする検証エンジンのルールを定義します。これらのアノテーションの周りで検証を行うことは、オブジェクトが JPA オブジェクトでもあることを必ずしも示すわけではありませんが、2 つが一緒に使用されることがよくあります。
null 値を示すために DB レベルでの障害 (制約違反) に依存する代わりに javax.validation を使用している場合は、両方の注釈を使用する必要があります。
@Id
に慣れている
* Specifies the primary key of an entity.
* The field or property to which the <code>Id</code> annotation is applied
* should be one of the following types: any Java primitive type;
* any primitive wrapper type;
* <code>String</code>;
* <code>java.util.Date</code>;
* <code>java.sql.Date</code>;
* <code>java.math.BigDecimal</code>;
* <code>java.math.BigInteger</code>.
したがって、null 値は処理されません。null 値を防ぐため@NotNull
に、 とともに使用され@Id
ます。
id / primary key
はテーブルで最も重要なフィールドであるため、テーブル内uniquely
の行を識別します。
だから、あってはならないnull
。
はい、これにより id フィールドが null 不可になり、必須にする必要があります。
ただし、idを自動インクリメントしたい場合は、それを削除して追加します
@GeneratedValue(strategy=GenerationType.AUTO)
私の理解では、これは静的分析用であり、休止状態/orm とは関係ありません。それは intellij 固有の注釈ですか?
したがって、コンパイル時に、@NotNull として注釈が付けられたフィールドに NULL を割り当てようとすると、警告が表示されます。
また、依存するコードは、戻り値が決して null にならないことを認識しています。