在Spring Data JPA中使用@Transactional注释的图层

时间:2014-04-26 20:24:41

标签: java spring hibernate spring-data spring-data-jpa

我正在为我的应用程序使用Spring Data JPA,它具有以下层;

  1. 服务层,带有接口和Impls(带注释的@service)
  2. CRUD存储库层 Spring Data JPA以及自定义存储库实施
  3. 实体层
  4. 我想知道放置@Transactional的确切位置到底在哪里。目前,我在服务层中使用它,其中正在使用存储库。

2 个答案:

答案 0 :(得分:3)

交易属于服务层。例如,如果您有HotelService,那么代码将如下所示:

@Service("hotelService")
@Transactional
public class HotelServiceImpl implements HotelService {
    @Autowired
    HotelDao hotelDao;

    // The rest of code omited ...
}

答案 1 :(得分:1)

如果您拥有数据库访问权限,则必须使用@Transactional来获得最佳效果。

请参阅Understanding the Spring Framework's declarative transaction implementation

  

您只需使用@Transactional注释对类进行注释,将行(<tx:annotation-driven/>)添加到您的配置中,然后希望您了解它的工作原理。