From 49b5159e4e87b5d754072f0df35037eee8045346 Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 00:01:46 +0900 Subject: [PATCH 01/11] =?UTF-8?q?chore:=20application.yaml=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.properties | 1 - src/main/resources/application.yaml | 10 ++++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) delete mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/application.yaml diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 8b1378917..000000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml new file mode 100644 index 000000000..2156c633d --- /dev/null +++ b/src/main/resources/application.yaml @@ -0,0 +1,10 @@ +spring: + datasource: + driver-class-name: org.h2.Driver + username: sa + password: + jpa: + hibernate: + ddl-auto: create-drop + database-platform: org.hibernate.dialect.H2Dialect + show-sql: true \ No newline at end of file From fdc1c745e498c505358872a58390a2a85775054a Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 00:43:54 +0900 Subject: [PATCH 02/11] =?UTF-8?q?feat:=20BaseTimeEntity=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootjpa/entity/BaseTimeEntity.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/com/programmers/springbootjpa/entity/BaseTimeEntity.java diff --git a/src/main/java/com/programmers/springbootjpa/entity/BaseTimeEntity.java b/src/main/java/com/programmers/springbootjpa/entity/BaseTimeEntity.java new file mode 100644 index 000000000..c9db170ba --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/entity/BaseTimeEntity.java @@ -0,0 +1,21 @@ +package com.programmers.springbootjpa.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.EntityListeners; +import jakarta.persistence.MappedSuperclass; +import java.time.LocalDateTime; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +@EntityListeners(AuditingEntityListener.class) +@MappedSuperclass +public abstract class BaseTimeEntity { + + @CreatedDate + @Column(updatable = false) + private LocalDateTime registeredDatetime; + + @LastModifiedDate + private LocalDateTime updatedDatetime; +} From 678cdc752f88dec113d164aa953db68623ca7ba9 Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 00:44:15 +0900 Subject: [PATCH 03/11] =?UTF-8?q?feat:=20MemberEntity=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootjpa/entity/Member.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/com/programmers/springbootjpa/entity/Member.java diff --git a/src/main/java/com/programmers/springbootjpa/entity/Member.java b/src/main/java/com/programmers/springbootjpa/entity/Member.java new file mode 100644 index 000000000..a9ff90140 --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/entity/Member.java @@ -0,0 +1,32 @@ +package com.programmers.springbootjpa.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Table(name = "member") +@Getter +@Setter +public class Member extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE) + private Long id; + + @Column(nullable = false, length = 30) + private String name; + + @Column(nullable = false, length = 40, unique = true) + private String nickName; + + private Integer age; + + @Column(nullable = false, length = 100) + private String address; +} \ No newline at end of file From c302fb73d85aa091a501c4e16ddce9e4131f461f Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 01:17:42 +0900 Subject: [PATCH 04/11] =?UTF-8?q?feat:=20Order=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=97=B0=EA=B4=80?= =?UTF-8?q?=EA=B4=80=EA=B3=84=20=EB=A7=A4=ED=95=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootjpa/entity/Member.java | 7 ++++ .../springbootjpa/entity/Order.java | 42 +++++++++++++++++++ .../springbootjpa/entity/OrderStatus.java | 5 +++ 3 files changed, 54 insertions(+) create mode 100644 src/main/java/com/programmers/springbootjpa/entity/Order.java create mode 100644 src/main/java/com/programmers/springbootjpa/entity/OrderStatus.java diff --git a/src/main/java/com/programmers/springbootjpa/entity/Member.java b/src/main/java/com/programmers/springbootjpa/entity/Member.java index a9ff90140..a8bbfceb3 100644 --- a/src/main/java/com/programmers/springbootjpa/entity/Member.java +++ b/src/main/java/com/programmers/springbootjpa/entity/Member.java @@ -1,11 +1,15 @@ package com.programmers.springbootjpa.entity; +import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; import jakarta.persistence.Table; +import java.util.ArrayList; +import java.util.List; import lombok.Getter; import lombok.Setter; @@ -29,4 +33,7 @@ public class Member extends BaseTimeEntity { @Column(nullable = false, length = 100) private String address; + + @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) + private List orders = new ArrayList<>(); } \ No newline at end of file diff --git a/src/main/java/com/programmers/springbootjpa/entity/Order.java b/src/main/java/com/programmers/springbootjpa/entity/Order.java new file mode 100644 index 000000000..5ea927c10 --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/entity/Order.java @@ -0,0 +1,42 @@ +package com.programmers.springbootjpa.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import java.util.Objects; +import lombok.Getter; +import lombok.Setter; + +@Entity +@Table(name = "orders") +@Getter +@Setter +public class Order extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE) + private Long id; + + @Enumerated(EnumType.STRING) + private OrderStatus orderStatus; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id", referencedColumnName = "id") + private Member member; + + public void updateMember(Member member) { + if (Objects.nonNull(this.member)) { + this.member.getOrders().remove(this); + } + + this.member = member; + member.getOrders().add(this); + } +} diff --git a/src/main/java/com/programmers/springbootjpa/entity/OrderStatus.java b/src/main/java/com/programmers/springbootjpa/entity/OrderStatus.java new file mode 100644 index 000000000..263c17ace --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/entity/OrderStatus.java @@ -0,0 +1,5 @@ +package com.programmers.springbootjpa.entity; + +public enum OrderStatus { + ACCEPTED, CANCELED, DELIVERED +} From 035d1c01169559c6b70f52c0b6be4a7186a324a8 Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 21:18:45 +0900 Subject: [PATCH 05/11] =?UTF-8?q?feat:=20OrderItem=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=97=B0=EA=B4=80?= =?UTF-8?q?=EA=B4=80=EA=B3=84=20=EB=A7=A4=ED=95=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootjpa/entity/Order.java | 27 ++++++++------ .../springbootjpa/entity/OrderItem.java | 37 +++++++++++++++++++ 2 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/programmers/springbootjpa/entity/OrderItem.java diff --git a/src/main/java/com/programmers/springbootjpa/entity/Order.java b/src/main/java/com/programmers/springbootjpa/entity/Order.java index 5ea927c10..196fe1232 100644 --- a/src/main/java/com/programmers/springbootjpa/entity/Order.java +++ b/src/main/java/com/programmers/springbootjpa/entity/Order.java @@ -1,19 +1,13 @@ package com.programmers.springbootjpa.entity; -import jakarta.persistence.Entity; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -import java.util.Objects; +import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + @Entity @Table(name = "orders") @Getter @@ -31,6 +25,9 @@ public class Order extends BaseTimeEntity { @JoinColumn(name = "member_id", referencedColumnName = "id") private Member member; + @OneToMany(cascade = CascadeType.ALL, mappedBy = "order", orphanRemoval = true) + private List orderItems = new ArrayList<>(); + public void updateMember(Member member) { if (Objects.nonNull(this.member)) { this.member.getOrders().remove(this); @@ -39,4 +36,12 @@ public void updateMember(Member member) { this.member = member; member.getOrders().add(this); } + + public void addOrderItem(OrderItem orderItem) { + orderItems.add(orderItem); + } + + public void removeOrderItem(OrderItem orderItem) { + orderItems.remove(orderItem); + } } diff --git a/src/main/java/com/programmers/springbootjpa/entity/OrderItem.java b/src/main/java/com/programmers/springbootjpa/entity/OrderItem.java new file mode 100644 index 000000000..ee97a1a5e --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/entity/OrderItem.java @@ -0,0 +1,37 @@ +package com.programmers.springbootjpa.entity; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +import java.util.Objects; + +@Entity +@Table(name = "order_item") +@Getter +@Setter +public class OrderItem extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE) + private Long id; + + @Column(nullable = false) + private Integer quantity; + + @Column(nullable = false) + private Integer price; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "order_id", referencedColumnName = "id") + private Order order; + + public void updateOrder(Order order) { + if (Objects.nonNull(this.order)) { + this.order.removeOrderItem(this); + } + + this.order = order; + order.addOrderItem(this); + } +} From d1a1df6c0f2ed42d5407b69469ca352396acfff8 Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 21:25:29 +0900 Subject: [PATCH 06/11] =?UTF-8?q?refactor:=20Order=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EC=97=90=20order=EB=A5=BC=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=EC=82=AD=EC=A0=9C=20=EA=B8=B0=EB=8A=A5=EC=9D=84=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootjpa/entity/Member.java | 22 ++++++++++--------- .../springbootjpa/entity/Order.java | 5 ++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/programmers/springbootjpa/entity/Member.java b/src/main/java/com/programmers/springbootjpa/entity/Member.java index a8bbfceb3..56deb142a 100644 --- a/src/main/java/com/programmers/springbootjpa/entity/Member.java +++ b/src/main/java/com/programmers/springbootjpa/entity/Member.java @@ -1,18 +1,12 @@ package com.programmers.springbootjpa.entity; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; -import java.util.ArrayList; -import java.util.List; +import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; +import java.util.ArrayList; +import java.util.List; + @Entity @Table(name = "member") @Getter @@ -36,4 +30,12 @@ public class Member extends BaseTimeEntity { @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) private List orders = new ArrayList<>(); + + public void addOrder(Order order) { + orders.add(order); + } + + public void removeOrder(Order order) { + orders.remove(order); + } } \ No newline at end of file diff --git a/src/main/java/com/programmers/springbootjpa/entity/Order.java b/src/main/java/com/programmers/springbootjpa/entity/Order.java index 196fe1232..919235727 100644 --- a/src/main/java/com/programmers/springbootjpa/entity/Order.java +++ b/src/main/java/com/programmers/springbootjpa/entity/Order.java @@ -30,11 +30,10 @@ public class Order extends BaseTimeEntity { public void updateMember(Member member) { if (Objects.nonNull(this.member)) { - this.member.getOrders().remove(this); + this.member.removeOrder(this); } - this.member = member; - member.getOrders().add(this); + member.addOrder(this); } public void addOrderItem(OrderItem orderItem) { From 37d9ee88f49c83b1e0334c497aaf56d21b167071 Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 21:55:39 +0900 Subject: [PATCH 07/11] =?UTF-8?q?feat:=20repository=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootjpa/repository/MemberRepository.java | 7 +++++++ .../springbootjpa/repository/OrderItemRepository.java | 7 +++++++ .../springbootjpa/repository/OrderRepository.java | 7 +++++++ 3 files changed, 21 insertions(+) create mode 100644 src/main/java/com/programmers/springbootjpa/repository/MemberRepository.java create mode 100644 src/main/java/com/programmers/springbootjpa/repository/OrderItemRepository.java create mode 100644 src/main/java/com/programmers/springbootjpa/repository/OrderRepository.java diff --git a/src/main/java/com/programmers/springbootjpa/repository/MemberRepository.java b/src/main/java/com/programmers/springbootjpa/repository/MemberRepository.java new file mode 100644 index 000000000..03827db6d --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/repository/MemberRepository.java @@ -0,0 +1,7 @@ +package com.programmers.springbootjpa.repository; + +import com.programmers.springbootjpa.entity.Member; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { +} diff --git a/src/main/java/com/programmers/springbootjpa/repository/OrderItemRepository.java b/src/main/java/com/programmers/springbootjpa/repository/OrderItemRepository.java new file mode 100644 index 000000000..fbba7a129 --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/repository/OrderItemRepository.java @@ -0,0 +1,7 @@ +package com.programmers.springbootjpa.repository; + +import com.programmers.springbootjpa.entity.OrderItem; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface OrderItemRepository extends JpaRepository { +} diff --git a/src/main/java/com/programmers/springbootjpa/repository/OrderRepository.java b/src/main/java/com/programmers/springbootjpa/repository/OrderRepository.java new file mode 100644 index 000000000..38c467949 --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/repository/OrderRepository.java @@ -0,0 +1,7 @@ +package com.programmers.springbootjpa.repository; + +import com.programmers.springbootjpa.entity.Order; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface OrderRepository extends JpaRepository { +} From 89e68dfebc3fd55069faf6ef314a022c23b0cf01 Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 22:44:05 +0900 Subject: [PATCH 08/11] =?UTF-8?q?feat:=20create=20Member=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/request/CreateRequestDto.java | 24 +++++++++++++++++++ .../dto/response/ResponseDto.java | 4 ++++ .../springbootjpa/entity/Member.java | 12 ++++++++-- .../springbootjpa/service/MemberService.java | 22 +++++++++++++++++ 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/programmers/springbootjpa/dto/request/CreateRequestDto.java create mode 100644 src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java create mode 100644 src/main/java/com/programmers/springbootjpa/service/MemberService.java diff --git a/src/main/java/com/programmers/springbootjpa/dto/request/CreateRequestDto.java b/src/main/java/com/programmers/springbootjpa/dto/request/CreateRequestDto.java new file mode 100644 index 000000000..c6e5da8f3 --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/dto/request/CreateRequestDto.java @@ -0,0 +1,24 @@ +package com.programmers.springbootjpa.dto.request; + +import com.programmers.springbootjpa.entity.Member; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +public class CreateRequestDto { + + private String name; + private String nickName; + private Integer age; + private String address; + + public Member toEntity() { + return Member.builder() + .name(name) + .nickName(nickName) + .age(age) + .address(address) + .build(); + } +} diff --git a/src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java b/src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java new file mode 100644 index 000000000..44bd0ceda --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java @@ -0,0 +1,4 @@ +package com.programmers.springbootjpa.dto.response; + +public class ResponseDto { +} diff --git a/src/main/java/com/programmers/springbootjpa/entity/Member.java b/src/main/java/com/programmers/springbootjpa/entity/Member.java index 56deb142a..5dbcc3452 100644 --- a/src/main/java/com/programmers/springbootjpa/entity/Member.java +++ b/src/main/java/com/programmers/springbootjpa/entity/Member.java @@ -1,8 +1,7 @@ package com.programmers.springbootjpa.entity; import jakarta.persistence.*; -import lombok.Getter; -import lombok.Setter; +import lombok.*; import java.util.ArrayList; import java.util.List; @@ -11,6 +10,7 @@ @Table(name = "member") @Getter @Setter +@NoArgsConstructor public class Member extends BaseTimeEntity { @Id @@ -31,6 +31,14 @@ public class Member extends BaseTimeEntity { @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) private List orders = new ArrayList<>(); + @Builder + public Member(String name, String nickName, Integer age, String address) { + this.name = name; + this.nickName = nickName; + this.age = age; + this.address = address; + } + public void addOrder(Order order) { orders.add(order); } diff --git a/src/main/java/com/programmers/springbootjpa/service/MemberService.java b/src/main/java/com/programmers/springbootjpa/service/MemberService.java new file mode 100644 index 000000000..d6ced9a0a --- /dev/null +++ b/src/main/java/com/programmers/springbootjpa/service/MemberService.java @@ -0,0 +1,22 @@ +package com.programmers.springbootjpa.service; + +import com.programmers.springbootjpa.dto.request.CreateRequestDto; +import com.programmers.springbootjpa.entity.Member; +import com.programmers.springbootjpa.repository.MemberRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +public class MemberService { + + private final MemberRepository memberRepository; + + @Transactional + public void createMember(CreateRequestDto createRequestDto) { + Member member = createRequestDto.toEntity(); + memberRepository.save(member); + } + +} From a050525fdbee7c671a3ed18b7f37593fce24953e Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 23:22:57 +0900 Subject: [PATCH 09/11] =?UTF-8?q?feat:=20find=20Member=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/ResponseDto.java | 27 +++++++++++++++++++ .../springbootjpa/entity/Member.java | 2 +- .../springbootjpa/entity/Order.java | 1 + .../springbootjpa/service/MemberService.java | 17 ++++++++++++ 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java b/src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java index 44bd0ceda..beb13a42d 100644 --- a/src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java +++ b/src/main/java/com/programmers/springbootjpa/dto/response/ResponseDto.java @@ -1,4 +1,31 @@ package com.programmers.springbootjpa.dto.response; +import com.programmers.springbootjpa.entity.Member; +import lombok.*; + +@Getter +@NoArgsConstructor public class ResponseDto { + + private Long memberId; + private String name; + private String nickName; + private String address; + + @Builder + private ResponseDto(Long memberId, String name, String nickName, String address) { + this.memberId = memberId; + this.name = name; + this.nickName = nickName; + this.address = address; + } + + public static ResponseDto fromEntity(Member member) { + return ResponseDto.builder() + .memberId(member.getId()) + .name(member.getName()) + .nickName(member.getNickName()) + .address(member.getAddress()) + .build(); + } } diff --git a/src/main/java/com/programmers/springbootjpa/entity/Member.java b/src/main/java/com/programmers/springbootjpa/entity/Member.java index 5dbcc3452..7539e83d3 100644 --- a/src/main/java/com/programmers/springbootjpa/entity/Member.java +++ b/src/main/java/com/programmers/springbootjpa/entity/Member.java @@ -32,7 +32,7 @@ public class Member extends BaseTimeEntity { private List orders = new ArrayList<>(); @Builder - public Member(String name, String nickName, Integer age, String address) { + private Member(String name, String nickName, Integer age, String address) { this.name = name; this.nickName = nickName; this.age = age; diff --git a/src/main/java/com/programmers/springbootjpa/entity/Order.java b/src/main/java/com/programmers/springbootjpa/entity/Order.java index 919235727..4e187a687 100644 --- a/src/main/java/com/programmers/springbootjpa/entity/Order.java +++ b/src/main/java/com/programmers/springbootjpa/entity/Order.java @@ -1,5 +1,6 @@ package com.programmers.springbootjpa.entity; +import com.programmers.springbootjpa.dto.response.ResponseDto; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/programmers/springbootjpa/service/MemberService.java b/src/main/java/com/programmers/springbootjpa/service/MemberService.java index d6ced9a0a..513d407da 100644 --- a/src/main/java/com/programmers/springbootjpa/service/MemberService.java +++ b/src/main/java/com/programmers/springbootjpa/service/MemberService.java @@ -1,12 +1,16 @@ package com.programmers.springbootjpa.service; import com.programmers.springbootjpa.dto.request.CreateRequestDto; +import com.programmers.springbootjpa.dto.response.ResponseDto; import com.programmers.springbootjpa.entity.Member; import com.programmers.springbootjpa.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.NoSuchElementException; + @Service @RequiredArgsConstructor public class MemberService { @@ -19,4 +23,17 @@ public void createMember(CreateRequestDto createRequestDto) { memberRepository.save(member); } + public List findAll() { + return memberRepository.findAll().stream() + .map(ResponseDto::fromEntity) + .toList(); + } + + public ResponseDto findById(Long id) { + Member member = memberRepository.findById(id) + .orElseThrow(() -> new NoSuchElementException("해당 고객이 존재하지 않습니다.")); + + return ResponseDto.fromEntity(member); + } + } From d97fddcedff67ac5928614ba8ba1a93676f496db Mon Sep 17 00:00:00 2001 From: jay-so Date: Tue, 1 Aug 2023 23:27:29 +0900 Subject: [PATCH 10/11] =?UTF-8?q?feat:=20delete=20Member=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../programmers/springbootjpa/service/MemberService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/programmers/springbootjpa/service/MemberService.java b/src/main/java/com/programmers/springbootjpa/service/MemberService.java index 513d407da..d8172ffca 100644 --- a/src/main/java/com/programmers/springbootjpa/service/MemberService.java +++ b/src/main/java/com/programmers/springbootjpa/service/MemberService.java @@ -36,4 +36,11 @@ public ResponseDto findById(Long id) { return ResponseDto.fromEntity(member); } + public void deleteById(Long id) { + if (!memberRepository.existsById(id)) { + throw new NoSuchElementException("삭제하려는 고객을 찾지 못했습니다."); + } + + memberRepository.deleteById(id); + } } From 6afe2c84ea9a5feedcf414702eb295cf224922c0 Mon Sep 17 00:00:00 2001 From: jay-so Date: Thu, 3 Aug 2023 23:34:14 +0900 Subject: [PATCH 11/11] =?UTF-8?q?refactor:=20MemberService=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/programmers/springbootjpa/service/MemberService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/programmers/springbootjpa/service/MemberService.java b/src/main/java/com/programmers/springbootjpa/service/MemberService.java index d8172ffca..87790f80a 100644 --- a/src/main/java/com/programmers/springbootjpa/service/MemberService.java +++ b/src/main/java/com/programmers/springbootjpa/service/MemberService.java @@ -36,6 +36,7 @@ public ResponseDto findById(Long id) { return ResponseDto.fromEntity(member); } + @Transactional public void deleteById(Long id) { if (!memberRepository.existsById(id)) { throw new NoSuchElementException("삭제하려는 고객을 찾지 못했습니다.");