Hibernate问题,删除整个表,然后批量插入

Hibernate问题,删除整个表,然后批量插入,hibernate,Hibernate,团队 我在hibernate上遇到了一个奇怪的问题。在那里,我看到了大量的删除发生 e、 g.当我在代码期望值以下运行时,它将从EMPLOYEE表中删除数据,然后执行批量插入 Session session = null; Transaction tx = null; try { session = sessionFactory.openSession(); tx = session.beginTransaction();

团队

我在hibernate上遇到了一个奇怪的问题。在那里,我看到了大量的删除发生

e、 g.当我在代码期望值以下运行时,它将从EMPLOYEE表中删除数据,然后执行批量插入

    Session session = null;
    Transaction tx = null;

    try {
        session = sessionFactory.openSession();
        tx = session.beginTransaction();



        String stringQuery = "DELETE FROM Employee";
        Query query = session.createQuery(stringQuery);
        query.executeUpdate();

        session.flush();
        session.clear();

        Employee employee = null;

        for (int i = 0; i < employeeList.size(); i++) {
            Employee = employeeList
                    .get(i);
            session.save(employee);
        }

        tx.commit();

    }

    catch (Exception e) {
        if (tx != null)
            tx.rollback();

    }

    finally {
        if (session != null) {
            session.close();
        }

    }
Session=null;
事务tx=null;
试一试{
session=sessionFactory.openSession();
tx=session.beginTransaction();
String stringQuery=“从员工中删除”;
Query=session.createQuery(stringQuery);
query.executeUpdate();
session.flush();
session.clear();
Employee=null;
对于(int i=0;i
但当我们启用showsql时,有“N”个删除正在发生,而且似乎在所有插入之后都是按顺序进行的

我在tx.commit()上保留了一个调试器,下面是ShowSQL的输出代码

e、 它似乎在无限循环中使用同一组语句

从员工中删除
插入员工价值观
从员工中删除
插入员工价值观
从员工中删除

插入员工值

您确定它是无限循环的吗?而且,您不需要在会话之前
刷新
清除
会话,hibernate将以同步方式启动查询,只是它会先删除您的记录,然后再插入新记录。将
flush
clear
语句放在
commit


还有一件事,您不需要迭代循环并逐个插入记录,您可以使用
saveOrUpdateAll
方法批量插入记录。

您可以显示配置文件和映射文件/POJO以及注释吗?