Doma 2.0 の トランザクション スコープ
関数のロジックは複数メソッド間に散らばっている場合、トランサクションスコープはどうですか?
下記例を考慮、functionA のempDao更新処理と functionBのclassInfoDao更新処理は同一トランサクションですか?現在コーディングの条件は複数関数利用しないといけないので、なんかいい方法がありますか?
functionA() {
TransactionManager tm = AppConfig.singleton().getTransactionManager();
emp.setGroupNo("100");
int updateResult = tm.required(() -> {
return empDao.update(emp);
};
functionB(emp.getEmployeeNo(), emp.getGroupNo());
}
int functionB(String empNo, String groupNo) {
TransactionManager tm = AppConfig.singleton().getTransactionManager();
int updateResult = tm.required(() -> {
int result = 0;
List<ClassInfo> classList = classDao.selectById(empNo);
for(ClassInfo class in classList) {
class.setGroupNo(groupNo);
result = classInfoDao.update(emp);
if (result < 0) { break; }
}
return result;
};
return updateResult;
}