ฉันเพิ่งเริ่มทำธุรกรรม Spring มีบางอย่างที่ฉันพบว่าแปลกจริงๆฉันอาจเข้าใจเรื่องนี้อย่างถูกต้อง
ฉันต้องการมีทรานแซคชันในระดับเมธอดและฉันมีเมธอดผู้โทรภายในคลาสเดียวกันและดูเหมือนว่ามันจะไม่เป็นแบบนั้นมันจะต้องถูกเรียกจากคลาสแยกต่างหาก ฉันไม่เข้าใจว่ามันเป็นไปได้อย่างไร
หากใครมีความคิดในการแก้ไขปัญหานี้ฉันจะขอบคุณมาก ฉันต้องการใช้คลาสเดียวกันเพื่อเรียกใช้วิธีการทำธุรกรรมที่มีคำอธิบายประกอบ
นี่คือรหัส:
public class UserService {
@Transactional
public boolean addUser(String userName, String password) {
try {
// call DAO layer and adds to database.
} catch (Throwable e) {
TransactionAspectSupport.currentTransactionStatus()
.setRollbackOnly();
}
}
public boolean addUsers(List<User> users) {
for (User user : users) {
addUser(user.getUserName, user.getPassword);
}
}
}
TransactionTemplate
วิธีการ: stackoverflow.com/a/52989925/355438