【问题标题】:GCP Spanner Template ReadWrite Transaction Not WorkingGCP Spanner 模板读写事务不起作用
【发布时间】:2020-01-02 15:13:59
【问题描述】:
我想使用 Google spanner 模板在单个事务中执行工作单元,
spannerTemplate.performReadWriteTransaction(trasac -> {
// Write in table 1
// Write in table 2
});
由于“不支持嵌套事务”而出现异常,请帮助我。
【问题讨论】:
标签:
java
google-app-engine
google-cloud-platform
google-cloud-spanner
【解决方案1】:
也许这会有所帮助:我在调用 performReadWriteTransaction 方法的服务方法上有 @Transactional 注释,因此我删除了该注释。如here 所述,此类方法“不能在@Transactional 注释方法中使用,因为 Cloud Spanner 不支持事务中的事务。”
【解决方案2】:
根据here 描述的更改,默认情况下,Spanner 客户端库会阻止嵌套事务。
要覆盖此行为,您可以改为调用 TransactionRunner.allowNestedTransaction()。