7
GORM .getを使用してオブジェクトoを取得し、いくつかのフィールドを修正し、o.validate()を呼び出してHibernateがオブジェクトをDBに保存することなくエラーを見つける方法。それ自身で破棄しても保存を妨げることはありません。どちらもgrailsドメインオブジェクトを保存せずに変更して検証する
clazz.withTransaction { status ->
row.validate(flush:false)
row.discard()
status.setRollbackOnly()
}
Thisポストは、コマンドオブジェクトを使用することをお勧めしませんが、このコードは、多くの異なるドメインオブジェクトに適用されます。 Hibernateに保存しない命令を与えるためには、単純な方法(いくつかのパラメータを渡して検証します)が必要です。毎回新しいインスタンスを作成する必要がありますか?
o.save()を明示的に呼び出してオブジェクトをフラッシュキューに入れる必要はありませんか? –
いいえ、変更されたセッションに接続されているインスタンスはすべてフラッシュされます。 'save()'を呼び出す必要があるのは、新しいインスタンスだけです。 –
ありがとうございました – cardenizen