Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate在一个事务中保存的对象不会超过15个_Java_Mysql_Hibernate_Jpa_Jdbc - Fatal编程技术网

Java Hibernate在一个事务中保存的对象不会超过15个

Java Hibernate在一个事务中保存的对象不会超过15个,java,mysql,hibernate,jpa,jdbc,Java,Mysql,Hibernate,Jpa,Jdbc,它保存15个对象,然后进入无限循环,什么也不做。没有任何内容输出到控制台 代码如下: Session session = sessionFactory.openSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); for (Persistable persistable: persistables) { sessi

它保存15个对象,然后进入无限循环,什么也不做。没有任何内容输出到控制台

代码如下:

Session session = sessionFactory.openSession();
Transaction transaction = null;
try {
        transaction = session.beginTransaction();

        for (Persistable persistable: persistables) {
           session.save(persistable);
        }

        transaction.commit();
    }
    catch (HibernateException e) {
        if (transaction != null) transaction.rollback();
    }
    finally {
        session.close();
    }

我正在使用标准的JDBCMySQL连接器,创建标准属性和hbm2ddl集。我通过一次循环15个对象来解决这个问题,但我希望以后不要这样做

如果启用了自动刷新,请尝试刷新循环中的会话

    for (Persistable persistable: persistables) {
       session.save(persistable);
       session.flush();
    }

如果这样做有效,则可能无法使用事务,请检查jdbc版本。

应该可以。你不应该把它限制在15。您是否设置了调试点并检查了为什么在超过15年的时间内,它的行为会像您认为的那样?是否启用了自动刷新?是否有可能您的一个持久化对象在其对象“树”中有一个循环?它每次“停止”在同一个对象上还是在不同的对象上?