无需任何DAO请求的休眠自动提交

时间:2018-11-26 08:24:51

标签: mysql spring hibernate spring-transactions

我目前正在从另一个人那里读取代码。我看到他没有提出任何明确的请求来更新DB,但确实会更新实体。请检查以下pseudo code

@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void updateFoo(long fooId) {

    // Get foo instance from DB, foo has status = 0
    Foo foo = fooDAO.getFoo(fooId);
    foo.setStatus(1);
    // There is no call to DAO layer from here
}

我从My SQL检查过,foo已更新,没有任何session.save(foo)session.update(foo)

通常,我会在FooDAO层中这样称呼

sessionFactory.getCurrentSession().update(foo);

那怎么可能?我怀疑Transaction自动commit POJO对象。请让我知道如何?为什么有人这样做,这会使代码更难阅读吗?

0 个答案:

没有答案