From b7c11741b4e7c8370d3e45e2fd0bd7b8cf190a2d Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Sun, 6 Jul 2025 10:41:55 +0800 Subject: [PATCH] Ensure DraftService uses transactions --- src/main/java/com/openisle/service/DraftService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/openisle/service/DraftService.java b/src/main/java/com/openisle/service/DraftService.java index 804660724..794828d50 100644 --- a/src/main/java/com/openisle/service/DraftService.java +++ b/src/main/java/com/openisle/service/DraftService.java @@ -8,6 +8,7 @@ import com.openisle.repository.CategoryRepository; import com.openisle.repository.DraftRepository; import com.openisle.repository.TagRepository; import com.openisle.repository.UserRepository; +import org.springframework.transaction.annotation.Transactional; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -24,6 +25,7 @@ public class DraftService { private final CategoryRepository categoryRepository; private final TagRepository tagRepository; + @Transactional public Draft saveDraft(String username, Long categoryId, String title, String content, List tagIds) { User user = userRepository.findByUsername(username) .orElseThrow(() -> new IllegalArgumentException("User not found")); @@ -46,11 +48,13 @@ public class DraftService { return draftRepository.save(draft); } + @Transactional(readOnly = true) public Optional getDraft(String username) { return userRepository.findByUsername(username) .flatMap(draftRepository::findByAuthor); } + @Transactional public void deleteDraft(String username) { userRepository.findByUsername(username) .ifPresent(draftRepository::deleteByAuthor);