Я сейчас читаю код от другого парня.Я видел, что он не делает никаких явных запросов на обновление 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
auto commit
POJO Object.Пожалуйста, дайте мне знать, как?И зачем кому-то это делать, это затрудняет чтение кода?