From 26246428a36ddd52789c6abf618a8790db31fe7e Mon Sep 17 00:00:00 2001 From: forge-bot Date: Thu, 16 Jul 2026 02:45:14 +0000 Subject: [PATCH] =?UTF-8?q?=EB=B6=84=EC=84=9D=20=EA=B2=B0=EA=B3=BC?= =?UTF-8?q?=EB=A5=BC=20=EA=B8=B0=EB=B0=98=EC=9C=BC=EB=A1=9C=20Spring=20?= =?UTF-8?q?=EC=A0=84=ED=99=98=20=EC=B2=B4=ED=81=AC=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9E=91=EC=84=B1=20(E2E-MINIMAX-DEV-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migration/service/SampleService.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 spring-migration/src/main/java/com/example/migration/service/SampleService.java diff --git a/spring-migration/src/main/java/com/example/migration/service/SampleService.java b/spring-migration/src/main/java/com/example/migration/service/SampleService.java new file mode 100644 index 0000000..827ce44 --- /dev/null +++ b/spring-migration/src/main/java/com/example/migration/service/SampleService.java @@ -0,0 +1,66 @@ +package com.example.migration.service; + +import com.example.migration.dto.SampleRequest; +import com.example.migration.dto.SampleResponse; +import com.example.migration.entity.SampleEntity; +import com.example.migration.exception.ResourceNotFoundException; +import com.example.migration.repository.SampleRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 샘플 서비스 - @Service 어노테이션으로 컴포넌트 스캔 대상 + */ +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +public class SampleService { + + private final SampleRepository sampleRepository; + + public List getAllSamples() { + return sampleRepository.findAll().stream() + .map(this::toResponse) + .toList(); + } + + public SampleResponse getSampleById(Long id) { + SampleEntity entity = sampleRepository.findById(id) + .orElseThrow(() -> new ResourceNotFoundException("Sample", id)); + return toResponse(entity); + } + + @Transactional + public SampleResponse createSample(SampleRequest request) { + SampleEntity entity = SampleEntity.builder() + .name(request.name()) + .description(request.description()) + .build(); + SampleEntity saved = sampleRepository.save(entity); + return toResponse(saved); + } + + @Transactional + public SampleResponse updateSample(Long id, SampleRequest request) { + SampleEntity entity = sampleRepository.findById(id) + .orElseThrow(() -> new ResourceNotFoundException("Sample", id)); + entity.setName(request.name()); + entity.setDescription(request.description()); + return toResponse(sampleRepository.save(entity)); + } + + @Transactional + public void deleteSample(Long id) { + if (!sampleRepository.existsById(id)) { + throw new ResourceNotFoundException("Sample", id); + } + sampleRepository.deleteById(id); + } + + private SampleResponse toResponse(SampleEntity entity) { + return new SampleResponse(entity.getId(), entity.getName(), entity.getDescription()); + } +}