2016-07-19 10 views
0

データをDBに保存する前に検証したい(フィールドがnullでないかどうかを確認し、setterの正規表現に一致させる)。しかし、フィールドがnullの場合、Hibernateはsetterを使用しません。この場合、私は何をすべきですか?フィールドがヌルの場合、Hibernateはsetterを使用しません

@Column(name = "table_name") 
private String tableName; 

public void setTableName(String tableName) { 
    Assert.hasText(tableName); // Assert.hasText() - method from Spring util 
    this.tableName = tableName; 
} 

したがって、メソッドAssert.hasText()は、tableNameがnullの場合に例外をスローするようにします。

+0

あなたが持っていますフィールドにアノテーションを入れます。これは、休止状態がフィールドアクセスであり、プロパティアクセスではないことを意味します。フィールドが必要な場合は、hibernateバリデーターを使用してフィールドに '@NotNull'を入れてください。適切な検証を使用してください。 –

+0

Beanの検証はJPA APIとは関係ありません。上で指摘したように、Bean検証APIです。 JPA仕様には、セッター(他の不適切なコードが含まれている可能性があります)を使用するように強制するものは何もありません。 –

答えて

0

休止状態のドキュメントをご覧ください。ここで

は、docだ...など、NULLフィールド、フィールドのサイズ、::休止状態のアノテーションを使用すると、のようなクールなたくさんのことを検証することができ

http://hibernate.org/validator/documentation/getting-started/

それは非常に友好的だ;)

+0

FWIWこれはBean検証APIであり、ベンダーに依存しないURL http://beanvalidation.org/ –

+0

ありがとう、ありがとう。この場合(フィールドがnullの場合)、私はいくつかの例外がありました。この例外をどのように処理すればよいですか:ConstraintViolationException、RollbackException、TransactionSystemException? – Vas9IH

関連する問題