7

GORM .getを使用してオブジェクトoを取得し、いくつかのフィールドを変更し、o.validate()を呼び出して、HibernateがオブジェクトをDBに保存せずにエラーを見つけるにはどうすればよいですか?破棄自体は保存を妨げません。どちらもしません

                clazz.withTransaction { status ->
                  row.validate(flush:false)
                  row.discard()
                  status.setRollbackOnly()
                }

この投稿では、コマンドオブジェクトの使用を推奨していますが、このコードは多くの異なるドメインオブジェクトに適用されます。Hibernateに保存しない命令を与える簡単な方法(検証するために渡されるいくつかのパラメーター?)が必要です。毎回新しいインスタンスを作成する必要がありますか?

4

1 に答える 1

11

read()オブジェクトを取得する代わりにを使用する場合get()、フラッシュ中(たとえば、トランザクションまたはWeb要求の終了時)にオブジェクトは自動保存されません。電話をかけることができ、それが持続するので、それは本当に読み取り専用ではsave()ありません-汚れたときに自動保存されないだけです。

于 2011-10-12T20:48:32.350 に答える