我有一个 Grails 服务方法,它调用一个普通的 Java 类来使用 JDBC 将一些数据保存到数据库中。接下来,grails 服务方法也写入同一个数据库。这一切都应该发生在同一个事务中。
def dataSource
def myServiceMethod() {
MyJDBCClass jdbcClass = new MyJDBCClass(dataSource.getConnection())
jdbcClass.savePerson(new PersonDto("Bob"))
Person p = Person.findByFirstName("Bob")
p.firstName = "John"
if (p.firstName == "John") {
throw new RuntimeException("Test rollback of Bob")
}
p.save()
}
myServiceMethod 当前使用默认传播类型:PROPAGATION_REQUIRED(因为它是一种服务方法)。
MyJDBCClass 是纯 Java/JDBC 并且在一个单独的 JAR 文件中,理想情况下我们不希望对 Spring 的事务管理有任何依赖。我不确定如何进行。
谢谢!