2012-04-13 11 views
6

source codeを参照してください。SpringHibernateOperationsでsaveOrUpdateAllが推奨されない理由

hibernate.saveOrUpdateAll(私は事実上、この方法は推奨されている場合は、それは次のリリースでは消える可能性があることを意味することを行うことができます確認してください)があり、その背後にある正当な理由が、それは私がhibernate.deleteAllhibernate.loadAllを行うことができることを奇妙だが、できなかった

答えて

10

理由は、Javaのドキュメントから明らかである、

個々するsaveOrUpdateの賛成で

またはマージの使用

あなたがメソッドの実装、 linkから取られたコードを見ることができるように

public void saveOrUpdateAll(final Collection entities) throws DataAccessException { 
768   executeWithNativeSession(new HibernateCallback() { 
769    public Object doInHibernate(Session session) throws HibernateException { 
770     checkWriteOperationAllowed(session); 
771     for (Iterator it = entities.iterator(); it.hasNext();) { 
772      session.saveOrUpdate(it.next()); 
773     } 
774     return null; 
775    } 
776   }); 
777  } 

この方法はあまり使用し、それはあなたのトランザクション内ですることはできません。だから、春はリストを反復して個々のオブジェクトを保存してほしい。

loadAll()の方法は、異なる有用な方法です。 saveOrUpdateAll()と似ていません。

deleteAll()saveOrUpdateAll()に似ていますが、矛盾していると私は同意します。もう一方は非難されています。

+0

ありがとうマヌー、素敵な説明!私はこのメソッドがトランザクション内で使用できないことを知らなかった。 –

関連する問題