JPA と Hibernate with RequestFactory (GWT 2.5) を使用して、フィールドに一意の値の制約を実装しようとしています。私の他の制約は JSR303 を使用して実装されており、違反を同じ方法でクライアントに報告したいと考えています ( を呼び出しonConstraintViolation
ますReceiver
)。私が理解しているように、このタイプの制約を実装するための最良のオプションは、属性unique = true
を使用するときに設定することです。@Column
これは、トランザクションがコミットされたときにデータベースによって強制され、クエリによる一意性のアサートに関連する競合状態を回避します。
メソッドをトランザクションの開始とコミットでラップする実装に関するこのスレッドのアドバイスに従いました。一意性制約に違反した場合、コミット操作は.ServiceLayerDecorator
invoke
RollbackException
一般的なエラーではなく、制約違反としてクライアントに伝播されるように、この例外を処理するにはどうすればよいですか?
を見てわかる限り、検証は呼び出しとは別に行われ、この方法でSimpleRequestProcessor
失敗を伝播する明白な方法はないようです。invoke