Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
IAccountOperations {
void processTransaction(Transaction t);
}
Transaction {
Type type;
}
DepositTransaction: Transaction (type=Deposit) {
UserId userId;
BigDecimal depositAmount;
String description;
}
....
processDeposit(DepositTransaction t) {
ctx.beginTransaction();
User u = dao.lockUser(t.userId);
BigDecimal newBalance = u.profile().getBalance().add(t.depositAmount);
u.profile().setBalance(newBalance);
dao.saveTransaction(t);
dao.saveUser(u);
ctx.commitTransaction();
}
Анонсированы новые функции Java 9