Spring事务和JPA存储库

时间:2014-03-05 16:38:08

标签: spring jpa spring-transactions

我正在开发一些应用程序,我正在使用两个JPA存储库。

public interface AuthorityRepository extends JpaRepository<Authority, Integer>{
    }

public interface UserRepository extends JpaRepository<User, Integer> {
}

我的问题是:服务层有什么更好:一个存储库有一个服务层,或者多个存储库有一个服务层。交易中只有一个区别(或不是?)。

因此,对于一次交易,一次保存或多次保存最好有一个交易。

@Transactional
    public void createUser(User user) {
        // TODO Auto-generated method stub
        userRepository.save(user);
    }

    @Transactional
public void createUser(User user) {
    // TODO Auto-generated method stub
    userRepository.save(user);
    authRepository.save(user.getAuth())
}    

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

如果您希望在两次保存中使用“全有”或“无”行为,则需要在同一事务中调用它们。您的服务层是定义事务工作单元的地方,因此第二个选项是正常的工作方式。