@Transactionalとは何か
クイズ1
次の Service メソッドの中で、stockRepository.decrease の実行中に自作の RuntimeException が投げられました。すでに実行済みの orderRepository.save の結果はどうなりますか。
Java
@Transactional
public void placeOrder(Long userId, Long itemId) {
orderRepository.save(new Order(userId, itemId));
stockRepository.decrease(itemId);
}クイズ2
次のメソッドから IOException(検査例外)が抜けました。既定の設定では、直前の保存はどうなりますか。
Java
@Transactional
public void importFile(String path) throws IOException {
logRepository.save(new ImportLog(path));
readFile(path); // ここで IOException
}クイズ3
自作の PaymentFailedException extends Exception が投げられたときにもロールバックさせたい場合、正しい書き方はどれですか。
クイズ4
次のコードで runAll を外部から呼びました。saveOne のトランザクションはどうなりますか。
Java
@Service
public class ItemService {
public void runAll(List<Item> items) {
for (Item item : items) {
saveOne(item);
}
}
@Transactional
public void saveOne(Item item) {
itemRepository.save(item);
}
}クイズ5
参照だけを行う Service メソッドに @Transactional(readOnly = true) を付けました。この指定の説明として正しいものはどれですか。
未回答の問題は、不正解として正解と解説のみ表示します
ログインが必要です
クイズに回答するにはログインしてください。