纯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
相关产品推荐
相关产品推荐

