问题是关于 Scalar DB ( https://github.com/scalar-labs/scalardb )。在下面的代码中,我检查用户是否存在。如果是这样,我会抛出一个异常。如果不是,我会在表格中添加它。我在开始时创建了一个 DistributedTransaction 实例,并在所有事务中使用它。
val transaction: DistributedTransaction = transactionService.start
logger.trace("transaction started: " + transaction);
//Perform the operations you want to group in the transaction
val userExists:Boolean = userShouldNotExist(transaction,userKey)
if(!userExists) {
userTransactionRepository.addUser(transaction, user)
userProfileAndPortfolioTransactionRepository.addUserProfileAndPortfolio(transaction, user)
userTokenTransactionRepository.addToken(transaction, emailToken, user)
commitTransaction(transaction)
(user: User, profileAndPortfolio: ExternalUserProfile, emailToken: UserToken)
} else {
throw DuplicateUserException(user)
}
如果 else 阻塞,我是否需要使用 DistributedTransaction 进行一些清理/最终确定,还是可以保持原样?