2012-03-02 3 views

答えて

3

シナリオではオブジェクトが検証をパスしますが、保存時にエラーがスローされます。

ドメインクラスの制約は何かを確認することができ、とてもvalidate()save()への呼び出しの間で変更を「彼らはチェックの事は」、それは前者が成功することを完全に可能だと後者が失敗した場合。

はここでユニークなので、失敗し

  • Book.ISBN
  • myBook.save()
  • を保存する myBookと同じISBNを持つ別の本を
  • myBook.validate()が呼ばれる独特のcontraintがあり、合格非常に単純な例ですISBNの制約が今では失敗する
3

データベースに挿入または更新が成功しないような追加の制約があると、Saveによってエラーが発生します。データベースに追加の制約がなく、あらゆる種類のインフラストラクチャの停止がない場合、save()は、validate()がtrueの場合には失敗するとは考えられません。

+0

expaにデータ型、データサイズ、外部キーの関係、非null制約、アクセス権(アプリケーションがテーブルに書き込む権限を持たないこと、nextvalのシーケンスなど)が念頭に置かれている '追加の制約' 。それらはすべて過去に私を噛んだ。 doelleriとDonの+1はどちらも有効な回答です。 –

関連する問題