public class JankenApplicationService { : public Optional<Player> play(long player1Id, Hand player1Hand, long player2Id, Hand player2Hand) { return tm.transactional(tx -> { val janken = Janken.play(player1Id, player1Hand, player2Id, player2Hand); jankenRepository.save(tx, janken); return janken.winnerPlayerId() .map(playerId -> playerRepository.findPlayerById(tx, playerId)); }); } } ここで気になるのは、Jank