2012-03-07 6 views
0

Grailsでは、Domainオブジェクトにsaveメタメソッドが添付されています。私は一緒にすべてを保存したいオブジェクトのリストを持っています。しかし、これらのいずれかが失敗した場合、私は失敗する全体「トランザクション」したい:Grails - DomainオブジェクトリストのHibernate/Validation

while(allDomainObjects) { 
    try { 
     thisObject.save() 
    } 
    catch(...) { 
    // end transaction 
    // kill all pending that weren't flushed yet? 
    } 
} 

flushAll()? 

を、それが失敗しない場合には、私は基本的に「フラッシュすべての」メソッドで保存されたすべてのオブジェクトを永続化したいです。同じレベルでは、allDomainObjects反復の途中にコールが残らないようにすると、これらの保留中のセーブをすべて終了したいと考えています。

私は自分のプロジェクトにデフォルトのHibernate/SiteMeshレイヤーを使用しています。どのようにこれらの複数のドメインのセーブトランザクションを処理するのですか?

ありがとうございます!

答えて

0

これはあなたを助ける必要があります。Grails: how to structure transactions when I want to continue validating even after the transaction has already failed

をあなたのケースでは、あなたが通過し、エラーが発生した後に返すように、各オブジェクトをチェックし、あなたのすべてのエラーを見つけるために、処理を維持したくない場合。

私が知る限り、flushAll()メソッドは存在しません。

+0

美しい。正確に私が探していたもの - 私は簡単なテストを行い、無効なオブジェクトをドメインリストに追加し、ロールバックは成功しました。ありがとう! – user82302124

関連する問題