package sample.usecase;
import java.util.Optional;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import sample.context.orm.DefaultRepository;
import sample.model.account.*;
/**
* 口座ドメインに対する顧客ユースケース処理。
*/
@Service
public class AccountService extends ServiceSupport {
/** ログイン情報を取得します。 */
@Transactional(DefaultRepository.BeanNameTx)
@Cacheable("AccountService.getLoginByLoginId")
public Optional<Login> getLoginByLoginId(String loginId) {
return Login.getByLoginId(rep(), loginId);
}
/** 有効な口座情報を取得します。 */
@Transactional(DefaultRepository.BeanNameTx)
@Cacheable("AccountService.getAccount")
public Optional<Account> getAccount(String id) {
return Account.getValid(rep(), id);
}
}