如何在表中插入或更新Collection对象 - saveOrUpdateAll()方法仅尝试更新不插入任何值

时间:2013-12-27 07:27:51

标签: java spring hibernate

我对Spring saveOrUpdateAll()的{​​{1}}方法存在问题。 我无法插入值。它总是试图触发更新查询 如何使用Spring的BaseHibernateDAO

在表中插入或更新Collection个对象

1 个答案:

答案 0 :(得分:1)

您可以迭代集合并在迭代时逐个保存对象实体。

For(Class c : Class_collection)
{
    session.saveOrUpdate(c);
}
transaction.commit();

这是一种做法。任何DAO方法的hibernate实现都会在内部执行相同的操作。

此方法saveOrUpdateAll()已被弃用 您可以在实施here

下面看到它
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;
             }
         });
     }

希望此解决方案适合您。 :)