Spring boot Spring Boot—我是否必须标记处理和保存事务数据的方法?

Spring boot Spring Boot—我是否必须标记处理和保存事务数据的方法?,spring-boot,transactions,spring-data,Spring Boot,Transactions,Spring Data,例如: @Override @Transactional(readOnly = true) public List<PostResponse> getPostsByUsername(String username) { final User user = userRepository.findByUsername(username) .orElseThrow(() -> new UsernameNotFou

例如:

    @Override
    @Transactional(readOnly = true)
    public List<PostResponse> getPostsByUsername(String username) {
        final User user = userRepository.findByUsername(username)
                .orElseThrow(() -> new UsernameNotFoundException("User does not exist"));
        return postRepository.findAllByUser(user)
                .stream()
                .map(postMapper::mapToDto)
                .collect(Collectors.toList());
    }
@覆盖
@事务(只读=真)
公共列表getPostsByUsername(字符串用户名){
最终用户=userRepository.findByUsername(用户名)
.orelsetrow(()->new UsernameNotFoundException(“用户不存在”);
return postRepository.findAllByUser(用户)
.stream()
.map(postMapper::maptodo)
.collect(Collectors.toList());
}

我希望有人能给我解释一下。

虽然没有强制要求用它来标记方法,但事务性注释将使在多个位置处理事务(交叉关注点)变得很容易,而无需每次在方法中重写代码。它负责实体管理器的创建,将其绑定到当前线程,获得新连接并绑定到线程等,以及围绕此进行的任何定制,您可以只编写一次,然后在任何需要的地方使用它。请参考:以便更好地理解