7

ソースコードを調べてください。

その背後には正当な理由があるかもしれませんが、私ができることとできないことは奇妙です(hibernate.deleteAll実際にそれを行うことはできますが、このメソッドが非推奨になった場合は、次のリリースでなくなる可能性があります)hibernate.loadAllhibernate.saveOrUpdateAll

4

1 に答える 1

12

その理由は、Javaのドキュメントから明らかです。

個々のsaveOrUpdateまたはマージの使用を支持する

メソッドの実装を見ることができるように、リンクから取得したコード、

public void saveOrUpdateAll(final Collection entities) throws DataAccessException {
    executeWithNativeSession(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException {
            checkWriteOperationAllowed(session);
            for (Iterator it = entities.iterator(); it.hasNext(); ) {
                session.saveOrUpdate(it.next());
            }
            return null;
        }
    });
}

このメソッドはあまり使用されていません。トランザクション内に含めることはできません。したがって、Springでは、リストを繰り返して個々のオブジェクトを保存する必要があります。

loadAll()方法は異なり、便利です。とは異なりsaveOrUpdateAll()ます。

deleteAll()あなたは似たようなあなたの観察に正しいです、saveOrUpdateAll()そして私はそれが矛盾していることに同意します一方は非推奨であり、もう一方はそうではありません。

于 2012-04-13T11:19:10.597 に答える