You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

纯Spring环境下@Transactional注解结合EntityManager无法生效问题求助

纯Spring环境下@Transactional注解结合EntityManager无法生效问题求助

各位大佬好,我最近在纯Spring环境里碰到个头疼的问题:用@Transactional注解配合EntityManager做数据库持久化时,注解好像完全没生效,调用保存方法后数据根本没写入数据库。我把相关代码贴出来,麻烦帮忙看看哪里出问题了🙏

首先是我的BookDao类:

@Repository
public class BookDao {
    @Autowired
    private EntityManager entityManager;

    @Transactional
    public void create(Book book) {
        entityManager.persist(book);
  }

}

然后是执行保存操作的主方法:

public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);

        BookDao bookDao = context.getBean(BookDao.class);

        Book book = new Book("Sample Book");

        bookDao.create(book);
    }
}

最后是我的Spring配置类(代码未完全写完,核心配置如下):

@Configuration
@EnableTransactionManagement
public class SpringConfig {
    @Bean
    public EntityManagerFactory entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
        emf.setPersistenceUnitName("persistence");
        emf.afterPropertiesSet();
        return emf.getObject();
    }
}

我已经在配置类上加了@EnableTransactionManagement,也给create方法标注了@Transactional,EntityManager也是通过@Autowired注入的,但就是没法把数据存进数据库。有没有大佬能帮我排查下问题所在?

备注:内容来源于stack exchange,提问作者Aron Dernovics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:14:36