私はUIからユーザアクションのために実行されるトランザクションのグループを持つ必要があります。以下のいずれかが失敗した場合は、3つのトランザクション全体をロールバックする必要があります。 1)私は、私は私の要件を達成することができ、春のデータJPAを使用しようとしているユーザーグループトランザクション - スプリングデータJPA-Boot1.4.2
に電子メールを送信する1台 2)別のテーブル 3)のデータを更新してデータを挿入?そうでない場合は、達成方法を指導してください。ただ、@Transactional
注釈addEmployeeAsset方法の上に置く
@RequestMapping(value = "/assets/addEmployeeAsset", method = RequestMethod.POST)
public void addEmployeeAsset(@RequestBody EmployeeAsset employeeAsset) {
System.out.println("inside addEmployeeAsset restcontroller--");
employeeAssetDao.save(employeeAsset);
assetDao.updateAssetAfterAllocation(employeeAsset.getAssetid());
assetService.sendEmail();
}
public interface EmployeeAssetDao extends CrudRepository<EmployeeAsset, Long> {
}
public interface AssetDao extends CrudRepository<Asset,Long>{
@Modifying(clearAutomatically = true)
@Query(value = "update Asset a SET a.active = ?1 where a.assetid=?2")
List<Asset> updateAssetAfterAllocation(String active,String assetid);
}
@RestController
public class AssetService {
public void sendEmail();
}
...あなたのコントローラは、サービス層を呼び出す必要があり、変換層/統合層でなければなりませんアクションを実行する。あなたのコントローラにある行は、 '@ Transactional'とマークされるべきサービスに含まれていなければなりません。あなたのコントローラからサービスを呼び出します。 –