您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

@Transactional注释在哪里?

@Transactional注释在哪里?

我认为交易属于服务层。这是了解工作单元和用例的人。如果你将多个DAO注入到一个服务中,而这些DAO需要在单个事务中一起工作,那么这是正确的答案。

总的来说,我同意其他人的看法,即交易通常在服务级别上开始(当然,这取决于你所需的粒度)。

但是,与此同时,我也开始添加@Transactional(propagation = Propagation.MANDATORY)到我的DAO层(以及其他不允许启动事务但需要现有事务的层),因为在你忘记在调用方中开始事务的地方,错误检测要容易得多(例如服务)。如果你的DAO带有强制传播注释,你将获得一个异常,指出在调用方法时没有活动的事务。

我还有一个集成测试,在该测试中,我检查所有bean(bean后处理器)是否有此注释,如果@Transactional在不属于服务层的bean中存在非强制传播的注释,则失败。这样,我确保我们不会在错误的层上启动事务。

其他 2022/1/1 18:18:53 有498人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶