override fun getTransactionAttribute()

in spring-transaction/src/main/kotlin/org/jetbrains/exposed/v1/spring/transaction/ExposedSpringTransactionAttributeSource.kt [22:37]


    override fun getTransactionAttribute(method: Method, targetClass: Class<*>?): TransactionAttribute? {
        val attr = delegate.getTransactionAttribute(method, targetClass)
        if (attr is RuleBasedTransactionAttribute) {
            val rules = attr.rollbackRules.toMutableList()
            rollbackExceptions.forEach { exception ->
                val containsException = rules.any {
                    it is RollbackRuleAttribute && it.exceptionName == exception.name
                }
                if (!containsException) {
                    rules.add(RollbackRuleAttribute(exception))
                }
            }
            attr.rollbackRules = rules
        }
        return attr
    }