DAO,SERVICE层做什么

问题描述 投票:-2回答:1

这两层是什么?为什么我们必须在服务中执行dao方法?为什么我们只应在Service方法字段中使用@Transactional。为什么我们不能直接在dao方法上使用@Transactional并且不使用服务?

spring service architecture dao layer
1个回答
1
投票

因为有很多方法可以管理交易,称为交易传播

TransactionDefinition.PROPAGATION_MANDATORY:支持当前交易;如果当前事务不存在,则引发异常。

TransactionDefinition.PROPAGATION_NESTED:如果存在当前事务,则在嵌套事务中执行。

TransactionDefinition.PROPAGATION_NEVER:不支持当前交易;如果当前事务存在,则引发异常。

TransactionDefinition.PROPAGATION_NOT_SUPPORTED:不支持当前交易;而是总是非事务地执行。

TransactionDefinition.PROPAGATION_REQUIRED:支持当前交易;如果不存在,则创建一个新的。

[TransactionDefinition.PROPAGATION_REQUIRES_NEW:创建一个新事务,如果存在则暂停当前事务。

TransactionDefinition.PROPAGATION_SUPPORTS:支持当前交易;如果不存在,则以非事务方式执行。

TransactionDefinition.TIMEOUT_DEFAULT:使用基础事务系统的默认超时,如果不支持超时,则不使用默认超时。

© www.soinside.com 2019 - 2024. All rights reserved.