package sample.usecase; import java.util.*; 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.master.*; import sample.model.master.Holiday.RegHoliday; /** * サービスマスタドメインに対する社内ユースケース処理。 */ @Service public class MasterAdminService extends ServiceSupport { /** 社員を取得します。 */ @Transactional(DefaultRepository.BeanNameTx) @Cacheable("MasterAdminService.getStaff") public Optional<Staff> getStaff(String id) { return Staff.get(rep(), id); } /** 社員権限を取得します。 */ @Transactional(DefaultRepository.BeanNameTx) @Cacheable("MasterAdminService.findStaffAuthority") public List<StaffAuthority> findStaffAuthority(String staffId) { return StaffAuthority.find(rep(), staffId); } public void registerHoliday(final RegHoliday p) { audit().audit("休日情報を登録する", () -> tx(() -> Holiday.register(rep(), p))); } }