【发布时间】:2018-08-07 01:52:43
【问题描述】:
我正在使用 Spring Data Jpa 并在发生某些事情时添加到 2 个表中,同时将第一个事务添加到第二个表中,第一个事务没有回滚 并且第一个插入是 在插入之后立即提交
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor =
Exception.class)
public void addVehicleType(Map<String, Object> model)throws Exception {
VehicleType vehicleType = null;
VehicleStatus vehicleStatus = null;
try {
vehicleType = (VehicleType) model.get("vehicleType");
vehicleStatus = (VehicleStatus) model.get("vehicleStatus");
vehicleStatusRepository.save(vehicleStatus);
vehicleTypeRepository.save(vehicleType);
} catch (Exception e) {
throw e;
}
VehicleTypeRepository.java
public interface VehicleTypeRepository extends JpaRepository<VehicleType, Long> {
@Override
void delete(VehicleType role);
long count();
}
【问题讨论】:
-
你的仓库是什么样子的?
-
公共接口 VehicleTypeRepository extends JpaRepository
{ @Override void delete(VehicleType role);长计数(); } -
你在用spring boot吗?
-
@SimonMartinelli 是的,我正在使用弹簧靴
-
Manish,你能告诉我使用方法 addVehicleType() 调用的类层次结构吗?例如:ManagedBean A -> bean spring service B1 -> bean spring service B2 -> bean spring B3 -> 带有注解的method()。在这种情况下,@Transactional 注释必须在 bean spring B1 上,而不是在 bean spring B3 上。
标签: spring-data-jpa spring-transactions