java - 在 Spring Data JPA 中使用 @Transactional 注解的层

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

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

  1. 服务层,带有接口(interface)和实现(带注释的@service)
  2. CRUD 存储库层,带有 Spring Data JPA,以及自定义存储库实现
  3. 实体层

我想知道放置 @Transactional 的正确位置到底在哪里。目前,我在使用存储库的服务层中拥有它。

最佳答案

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

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

    // The rest of code omited ...
}

关于java - 在 Spring Data JPA 中使用 @Transactional 注解的层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23316118/

相关文章:

java - HQL:选择语句以及使用 'case when then' 给出意外的 token 错误

java - 使用 hibernate 选择 SQL 表中 3each 驱动程序的最后一个位置

java - JPA 和类路径

java - 覆盖配置文件中的 maven 依赖范围

带有一个日期和可选的第二个日期的文件名的 Java 正则表达式

java - 通过代码创建AEM包

Java共享对象数组初始化错误

java - Spring @Transactional(readOnly=true) 恢复属性?

java - Spring Boot 2.0 中的 EmbeddedServletContainerAutoConfiguration 和 ServerPropertiesAutoConfiguration

java - Spring Integration WebFlux.outboundGateway 永远不会被调用