简体   繁体   English

春季交易和JPA资料库

[英]Spring transactions and JPA repository

I am developing some application and I am using two JPA repository. 我正在开发一些应用程序,并且正在使用两个JPA存储库。

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

and

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

my Question is: What is better in service layer: for one repository have one service layer or for multiple repository have one service layer. 我的问题是:在服务层上哪个更好:一个存储库有一个服务层,或者多个存储库有一个服务层。 Only one difference will be in transaction (or not?). 交易中只有一个差异(或没有)。

So is better have one transaction for one save or multiple save for one transaction. 因此,最好一次保存一笔交易,或者一次保存多次。

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

or 要么

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

Thanks for help 感谢帮助

If you want all-or-nothing behaviour on the two saves, they need to be called in the same transaction. 如果要对两个保存执行全有或全无行为,则需要在同一事务中调用它们。 Your service layer is the place to define transactional units of work, so the second option is the normal way to do it. 服务层是定义事务性工作单元的位置,因此第二种选择是完成此任务的常规方法。

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

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