Администрирование базы данных недоступно в web2py

Это связано с тем, как пружина генерирует транзакционные прокси.

В случае, когда у вас есть @Transactional на уровне класса, когда вы вызываете InventoryDisclosureBO.processDisclosureData(), вы фактически вызываете Spring proxy, который запускает транзакцию, а затем вызывает реальную реализацию.

Если у вас есть только @Transaction в persis (), весна не запускает транзакцию при вызове InventoryDisclosureBO.processDisclosureData(), а затем не может обнаружить, что вы вызвали InventoryDisclosureBO.persist()

Итак, Spring в основном игнорирует аннотацию на persist, поскольку она не может добавить транзакционный прокси.

Как правило, аннотация @Transactional должна быть общедоступным методом и, надеюсь, достаточно высока иерархия вызовов (в противном случае каждый упор будет создавать новую транзакцию).

Вы можете найти дополнительную информацию по этому другому вопросу SO: Метод Interceptor для частных методов (любой непубличный методы ведут себя одинаково)

0
задан tfv 13 July 2018 в 04:58
поделиться