DAO、SERVICE层是做什么用的
DAO, SERVICE layer what for
这两层是干嘛的?为什么我们必须在服务中执行dao-method?为什么我们应该只在服务方法字段中使用@Transactional。为什么我们不能直接在dao方法上使用@Transactional而不使用服务?
因为有很多方法可以管理称为事务传播的事务
TransactionDefinition.PROPAGATION_MANDATORY : 支持当前事务;如果当前事务不存在则抛出异常。
TransactionDefinition.PROPAGATION_NESTED : 如果当前事务存在,则在嵌套事务中执行。
TransactionDefinition.PROPAGATION_NEVER:不支持当前交易;如果当前事务存在则抛出异常。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED : 不支持当前事务;而是始终以非事务方式执行。
TransactionDefinition.PROPAGATION_REQUIRED : 支持当前事务;如果 none 存在,则创建一个新的。
TransactionDefinition.PROPAGATION_REQUIRES_NEW : 创建一个新事务,如果存在则暂停当前事务。
TransactionDefinition.PROPAGATION_SUPPORTS : 支持当前交易;如果 none 存在,则以非事务方式执行。
TransactionDefinition.TIMEOUT_DEFAULT : 使用底层事务系统的默认超时,或者 none 如果不支持超时。
这两层是干嘛的?为什么我们必须在服务中执行dao-method?为什么我们应该只在服务方法字段中使用@Transactional。为什么我们不能直接在dao方法上使用@Transactional而不使用服务?
因为有很多方法可以管理称为事务传播的事务
TransactionDefinition.PROPAGATION_MANDATORY : 支持当前事务;如果当前事务不存在则抛出异常。
TransactionDefinition.PROPAGATION_NESTED : 如果当前事务存在,则在嵌套事务中执行。
TransactionDefinition.PROPAGATION_NEVER:不支持当前交易;如果当前事务存在则抛出异常。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED : 不支持当前事务;而是始终以非事务方式执行。
TransactionDefinition.PROPAGATION_REQUIRED : 支持当前事务;如果 none 存在,则创建一个新的。
TransactionDefinition.PROPAGATION_REQUIRES_NEW : 创建一个新事务,如果存在则暂停当前事务。
TransactionDefinition.PROPAGATION_SUPPORTS : 支持当前交易;如果 none 存在,则以非事务方式执行。
TransactionDefinition.TIMEOUT_DEFAULT : 使用底层事务系统的默认超时,或者 none 如果不支持超时。