1

タイトルが示すように、永続化された Java クラスで以下の条件の下でスローされる例外は次のとおりです。

@Column(name = "USERNAME", nullable=false, unique=true)
private String username;


@Column(name = "PASSWORD")
@NotNull
@Size(min = 5, max = 25)
private String password;

@NotNullとの使用の違いは何@Column(nullable=false)ですか?

usernamenullで一意でない場合に発生する可能性のある例外のタイプとともに、これを説明するAPIドキュメントが見つかりませんでした。そして、null の場合にスローされるpasswordのは、文字数未満で 25 文字を超える場合です。

4

1 に答える 1

4

javax.persistence.Columnデータベース列の詳細を指定するために使用されます。このnullable属性は通常、テーブル定義を生成するときにのみ使用され、実行時に検証に使用されることはありません。

javax.validation.constraints.NotNull検証プロバイダーが有効化および構成されていることを前提として、実行時にデータを永続化する前に検証するために使用されます。違反すると、のサブクラスがスローされValidationExceptionます。

usernamenullで一意でない場合に発生する可能性のある例外のタイプ

アプリケーション自体によって例外がスローされることはありませんが、データベースのテーブル定義がこれらのアノテーションから生成された場合、JPA例外がスローされます。

そして、passwordnull、chars未満、25charsを超える場合にスローされるもの。

ValidationExceptionなんらかの形の。

于 2012-05-15T11:15:25.040 に答える