简体   繁体   English

我们可以使用@Transaction 注解来管理ScalarDB 事务吗?

[英]Can we manage ScalarDB Transaction with @Transaction annotation?

Spring can manage transactions using @Transaction annotation. Spring 可以使用@Transaction 注解来管理事务。 Can we manage ScalarDB transactions with @Transaction annotation?我们可以使用@Transaction 注解来管理 ScalarDB 事务吗?

Scalar DB doesn't support Spring annotations at the moment.标量数据库目前不支持 Spring 注释。

ScalarDB 3.8 was released yesterday and it supports Spring Data integration. ScalarDB 3.8 昨天发布,支持 Spring 数据集成。 With the integration, users can use ScalarDB via Spring Data JDBC API like the following example:通过集成,用户可以通过 Spring 数据 JDBC API 使用 ScalarDB,如下例所示:

@Repository
public interface NorthAccountRepository
    extends PagingAndSortingRepository<NorthAccount, Integer>,
        ScalarDbHelperRepository<NorthAccount> {

  @Transactional
  default void transferToSouthAccount(
      @Nonnull SouthAccountRepository southAccountRepository,
      int fromId, int toId, int value) {

    NorthAccount fromEntity =
        findById(fromId).orElseThrow(() -> new AssertionError("Not found: " + fromId));
    SouthAccount toEntity =
        southAccountRepository
            .findById(toId)
            .orElseThrow(() -> new AssertionError("Not found: " + toId));
    update(new NorthAccount(fromEntity.id, fromEntity.balance - value));
    southAccountRepository.update(new SouthAccount(toEntity.id, toEntity.balance + value));
  }

  @Transactional
  default void deleteAfterSelect(int id) {
    findById(id).ifPresent(this::delete);
  }
}

It also provides explicit insert(T) and update(T) APIs in addition to the existing save(T) .除了现有的save(T)之外,它还提供显式的insert(T)update(T) API。

The integration is available under the commercial license.该集成可在商业许可下使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM