Skip to content

Commit

Permalink
[Refactor] 이미지, record Builder 패턴 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
82everywin committed Jan 19, 2025
1 parent a99f390 commit 6c4b1d6
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public void addRecord(Record record) {
this.record = record;
}

@Builder
public Image(Record record, String imageUrl) {
this.record = record;
this.imageUrl = imageUrl;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@
import jakarta.persistence.OneToMany;
import java.util.ArrayList;
import java.util.List;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import lombok.*;

@Entity
@Getter
Expand All @@ -41,31 +39,28 @@ public class Record extends BaseEntity {
@Column(nullable = false)
private Integer currentPage;

// 추후, OneToMany는 N+1 문제 일으킬 가능성 있으므로 뺴기로.
@OneToMany(mappedBy = "record")
private List<Image> images = new ArrayList<>();

@Builder
public Record(UserGroup userGroup, String text, Integer currentPage) {
this.userGroup = userGroup;
this.text = text;
this.currentPage = currentPage;
}

public static Record from(UserGroup userGroup, RecordReqDto recordReqDto) {

return new Record(
userGroup,
recordReqDto.getText(),
recordReqDto.getCurrentPage()
);
return Record.builder()
.userGroup(userGroup)
.text(recordReqDto.getText())
.currentPage(recordReqDto.getCurrentPage())
.build();
}

public void update(UpdateRecordReqDto updateRecordReqDto) {
this.text = updateRecordReqDto.getText();
this.currentPage = updateRecordReqDto.getCurrentPage();
}

public void addImage(Image image) {
this.images.add(image);
image.addRecord(this);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,14 @@
import java.util.List;
import java.util.Random;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

@Service
@RequiredArgsConstructor
@Slf4j
public class RecordServiceImpl implements RecordService {
private final UserRepository userRepository;
private final RecordGroupRepository groupRepository;
Expand Down Expand Up @@ -64,13 +66,13 @@ public Long createRecord(Long groupId, Long userId, List<MultipartFile> files, R

UserGroup userGroup = getUserGroup(group.getId(), user.getId());

Record record = Record.from(userGroup, recordReqDto);
recordRepository.save(record);
Record record = recordRepository.save(Record.from(userGroup, recordReqDto));

log.info("Record 저장 - {}", record);

if (files != null) {
imageService.saveImages(record.getId(), files);
}

return record.getId();
}

Expand Down

0 comments on commit 6c4b1d6

Please sign in to comment.