gpt4 book ai didi

Spring + JPA @Transactional 未提交

转载 作者:行者123 更新时间:2023-12-04 15:48:11 25 4
gpt4 key购买 nike

我知道之前在这里问过类似的问题,但我找不到我的问题的解决方案。基本上,我试图在 Spring 中通过 Hibernate 使用 JPA,但数据是 不是 由于某种原因被持久化。在 spring 事务上打开调试什么都没有显示 - EntityManager 打开和关闭,但就事务管理器而言,没有任何显示......我确信我错过了一些重要的事情,感谢任何帮助!有关详细信息,请参阅以下内容。

TIA

奥利弗

基本布局如下:class FooDaoJPA的保存函数调用 entityManager.persist(object)持久化对象。

类(class) FooServiceImpl通过以下方式实现服务接口(interface):

@Transactional(rollbackFor = DataAccessException.class,
readOnly = false, timeout = 30,
propagation = Propagation.SUPPORTS,
isolation = Isolation.DEFAULT)
public void saveFoo(Foo foo) throws DataAccessException {
fooDao.save(foo);
}

注意到 fooDao由 Spring IoC 注入(inject)

最后 Controller 注入(inject) FooService并调用 saveFoo()持久化数据。

JPA 配置
<!-- JPA Entity Manager Factory -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="feDataSource"/>

<!-- Transaction Config -->
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory"/>

<tx:annotation-driven mode="aspectj"
transaction-manager="transactionManager"/>

最佳答案

注意 mode="aspectj"在您的配置中。它需要额外的配置,通常你不应该使用它,除非你明白它的含义和你为什么需要它。见 10.5.6 Using @Transactional .

关于Spring + JPA @Transactional 未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com