Skip to content

Commit 27e16ed

Browse files
committed
Chore: 서비스 계층 트랜잭션 정책 정비 (class-level + checked rollback)
1 parent 1eb7020 commit 27e16ed

14 files changed

Lines changed: 17 additions & 22 deletions

src/main/java/io/ejangs/docsa/domain/branch/app/BranchService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ private BranchCreateContext prepareBranchCreateContext(Long documentId,
9898
);
9999
}
100100

101-
@Transactional
101+
@Transactional(rollbackFor = Exception.class)
102102
public BranchRenameResponse renameBranch(Long documentId, Long branchId, String newName,
103103
Long userId) {
104104

@@ -121,7 +121,7 @@ public BranchRenameResponse renameBranch(Long documentId, Long branchId, String
121121
* 삭제하려는 브랜치는 메인 브랜치가 아니며 파생된 서브브랜치 또한 가지고 있지 않아야 합니다. 삭제 가능한 브랜치임을 확인 후 오직 해당 브랜치에서만 존재하는 블록을
122122
* 삭제한 후 나머지 브랜치 관련 정보를 삭제합니다.
123123
*/
124-
@Transactional
124+
@Transactional(rollbackFor = Exception.class)
125125
public void deleteBranch(Long documentId, Long branchId, Long userId) {
126126

127127
// 1. 브랜치 검증

src/main/java/io/ejangs/docsa/domain/branch/app/create/BranchCreateMongoTxService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class BranchCreateMongoTxService {
1616
private final CommitContentAssembler commitContentAssembler;
1717
private final SaveContentRepository saveContentRepository;
1818

19-
@Transactional(transactionManager = "mongoTransactionManager")
19+
@Transactional(transactionManager = "mongoTransactionManager", rollbackFor = Exception.class)
2020
public String createSaveContentFromCommit(String commitMongoId) {
2121
List<Map<String, Object>> blockContents = commitContentAssembler.assemble(commitMongoId);
2222

@@ -26,4 +26,4 @@ public String createSaveContentFromCommit(String commitMongoId) {
2626

2727
return saveContentRepository.save(saveContent).getId();
2828
}
29-
}
29+
}

src/main/java/io/ejangs/docsa/domain/branch/app/create/BranchCreateMySqlTxService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class BranchCreateMySqlTxService {
1818
private final BranchQueryService branchQueryService;
1919
private final SaveQueryService saveQueryService;
2020

21-
@Transactional
21+
@Transactional(rollbackFor = Exception.class)
2222
public BranchCreateResponse createBranchOrSave(BranchCreateContext context, String saveContentId) {
2323
Branch targetBranch = context.fromBranch();
2424

src/main/java/io/ejangs/docsa/domain/commit/app/CommitService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ private List<Map<String, Object>> getWholeContent(Long commitId) {
8484
return assembler.assemble(commit.getCommitMongoId());
8585
}
8686

87-
@Transactional
87+
@Transactional(rollbackFor = Exception.class)
8888
public CreateCommitResponse mergeCommit(Long docId, MergeCommitRequest mergeRequest,
8989
Long userId) {
9090
MergeBranches mergeBranches = prepareMergeBranches(docId, mergeRequest, userId);

src/main/java/io/ejangs/docsa/domain/commit/app/create/CommitMongoTxService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class CommitMongoTxService {
2525
private final BlockService blockService;
2626
private final CommitBlockSequenceRepository cbsRepository;
2727

28-
@Transactional(transactionManager = "mongoTransactionManager")
28+
@Transactional(transactionManager = "mongoTransactionManager", rollbackFor = Exception.class)
2929
public MongoIdsDto createMongoPart(CreateCommitRequest request, String baseCommitCbsMongoId) {
3030
// 이번 커밋에서 "새로 저장된" 블록들 (Mongo insert)
3131
List<Block> newBlocks = blockService.saveBlocks(request.blocks());

src/main/java/io/ejangs/docsa/domain/commit/app/create/CommitMySqlTxService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class CommitMySqlTxService {
3131
private final EdgeService edgeService;
3232
private final MongoDeleteOutboxFactory mongoDeleteOutboxFactory;
3333

34-
@Transactional
34+
@Transactional(rollbackFor = Exception.class)
3535
public Commit createMySqlPart(Doc doc, Branch branch, CreateCommitRequest request, String commitCbsMongoId) {
3636
Commit newCommit = CommitMapper.toEntity(branch, request);
3737
newCommit.initializeCommitMongoId(commitCbsMongoId);

src/main/java/io/ejangs/docsa/domain/commit/app/merge/MergeMongoTxService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class MergeMongoTxService {
1919
private final BlockService blockService;
2020
private final CommitQueryService commitQueryService;
2121

22-
@Transactional(transactionManager = "mongoTransactionManager")
22+
@Transactional(transactionManager = "mongoTransactionManager", rollbackFor = Exception.class)
2323
public CommitMongoIdsDto createMongoPart(List<BlockDto> blocks) {
2424
List<Block> savedBlocks = blockService.saveBlocks(blocks);
2525

src/main/java/io/ejangs/docsa/domain/commit/app/merge/MergeMySqlTxService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.transaction.annotation.Transactional;
2727

2828
@Service
29+
@Transactional(rollbackFor = Exception.class)
2930
@RequiredArgsConstructor
3031
public class MergeMySqlTxService {
3132

@@ -35,7 +36,6 @@ public class MergeMySqlTxService {
3536
private final BranchQueryService branchQueryService;
3637
private final MongoDeleteOutboxFactory mongoDeleteOutboxFactory;
3738

38-
@Transactional
3939
public Commit createMySqlPart(Doc doc, Branch baseBranch, Branch targetBranch,
4040
MergeCommitRequest request, String commitMongoId) {
4141
Commit commit = CommitMapper.toEntity(targetBranch, request);

src/main/java/io/ejangs/docsa/domain/doc/app/DocService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public Page<DocPageResponse> searchList(Long userId, String keyword, Pageable pa
8080
return docListAssembler.assembleDocList(docs);
8181
}
8282

83-
@Transactional
83+
@Transactional(rollbackFor = Exception.class)
8484
public DocTitleUpdateResponse updateTitle(Long userId, Long docId, DocTitleRequest request) {
8585
String title = request.title();
8686

@@ -114,7 +114,7 @@ public GraphResponse getGraph(Long userId, Long documentId) {
114114
}
115115

116116

117-
@Transactional
117+
@Transactional(rollbackFor = Exception.class)
118118
public void delete(Long docId, Long userId) {
119119
User user = docQueryService.getUserOrThrow(userId);
120120
Doc doc = docQueryService.getByIdAndUserId(docId, userId);

src/main/java/io/ejangs/docsa/domain/save/app/SaveService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
@Slf4j
2828
@Service
29+
@Transactional(rollbackFor = Exception.class)
2930
@RequiredArgsConstructor
3031
public class SaveService {
3132

@@ -41,7 +42,6 @@ public SaveGetResponse getSave(SaveIdentifierDto dto) {
4142
return SaveMapper.toSaveGetResponse(findSave.getUpdatedAt(), saveContent.getContent());
4243
}
4344

44-
@Transactional(rollbackFor = Exception.class)
4545
public SaveUpdateResponse updateSave(SaveIdentifierDto dto, SaveUpdateRequest request) {
4646
Save findSave = getValidSave(dto);
4747

@@ -66,7 +66,6 @@ public SaveUpdateResponse updateSave(SaveIdentifierDto dto, SaveUpdateRequest re
6666
return SaveMapper.toSaveUpdateResponse(findSave.getUpdatedAt());
6767
}
6868

69-
@Transactional
7069
public void deleteSave(SaveIdentifierDto dto) {
7170
Save findSave = getValidSave(dto);
7271
Branch branch = findSave.getBranch();

0 commit comments

Comments
 (0)