Java 延迟加载和多事务

Java 延迟加载和多事务,java,spring,hibernate,Java,Spring,Hibernate,我对惰性迭代器和一个hibernate会话中的多个事务有点困惑。有以下代码块: @Transactional public void runtProcessing() { HibernateTemplate hibernateTemplate = ... Session hibernateSession = hibernateTemplate.getSessionFactory().getCurrentSession(); Iterator<DomainObject> domainO

我对惰性迭代器和一个hibernate会话中的多个事务有点困惑。有以下代码块:

@Transactional
public void runtProcessing() {
HibernateTemplate hibernateTemplate = ...
Session hibernateSession = hibernateTemplate.getSessionFactory().getCurrentSession();
Iterator<DomainObject> domainObjects = hibernateTemplate.iterate(...);
            try {
                while (domainObjects.hasNext()) {
                    hibernateSession.beginTransaction();
                    DomainObject domainObject = domainObjects.next();

                    processDomainObject(domainObject);
                    hibernateSession.getTransaction().commit();
                }
}
@Transactional
公共无效运行处理(){
HibernateTemplate HibernateTemplate=。。。
会话hibernateSession=hibernateTemplate.getSessionFactory().getCurrentSession();
迭代器域对象=hibernateTemplate.iterate(…);
试一试{
while(domainObjects.hasNext()){
hibernateSession.beginTransaction();
DomainObject DomainObject=domainObjects.next();
processDomainObject(domainObject);
hibernateSession.getTransaction().commit();
}
}
由于存在多个事务,我想知道迭代器在哪个事务中工作?

从这里开始

当我们不定义我们自己的事务时,我们会退回到隐式 事务模式,在该模式下,数据库中的每个语句都以其 自有事务,导致更高的性能成本(数据库时间) 构建和分解事务)并降低一致性


因此,迭代器是作为其自身事务的一部分运行的。希望这有意义。

使用
@Transactional
注释更新了代码。已经有一个打开的事务。