java - 如何定义 @transactional 身份管理器?

标签 java spring hibernate jpa

在 spring 配置文件中,我有以下 bean:

<bean id="entityManagerFactory"
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  <property name="persistenceUnitName" value="EntryPU" />
  <property name="dataSource" ref="dataSource" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />    

当应用程序调用“remove”方法时:

@Override
public void remove(int id) {
    entry = entityManager.find(Entry.class, id);
    entityManager.remove(entry);
}

日志显示:

No transactional EntityManager available.

如何使其成为事务性的?

最佳答案

将@Transactional添加到方法中,使其在事务内运行。

@Transactional @Override
public void remove(int id) {
    entry = entityManager.find(Entry.class, id);
    entityManager.remove(entry);
}

关于java - 如何定义 @transactional 身份管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32012847/

相关文章:

java - 在java中删除文件,同时在其他线程中上传文件

java - @SpringBean 对子 ApplicationContext 中 bean 的支持

java - BindingResult 和 bean 名称 'userBean' 的普通目标对象都不能作为请求属性

java - 在另一个项目中复制 POJO 等 Hibernate 实体的最简洁方法

java - 如何在调试和 Release模式下从不同位置加载 Spring beans xml 配置

java - 应用程序上下文+ Autowiring

java - 将多对多关系保存在相应的映射表中

java - 为什么 javax.money.CurrencyUnit 不可序列化?

java - 如何在 GWTHighchart 图表中设置网格?

java - CrudRepository.save(Iterable<S>) 是原子的吗?