본문 바로가기

개발진행목록4

예약 리스트 조회 API 순환참조 해결 순환참조참조하는 대상이 서로 물려 있어 참조할 수 없게 되는 현상JPA에서 양방향으로 연결된 엔티티를 그대로 조회하는 경우, 서로의 정보를 순환하면서 조회하다가 stackoverflow 발생엔티티 직접 노출 AS-IS@Entity@Getter@Setter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class ReserveShop { @Id @GeneratedValue @Column(name = "reserve_shop_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "reserve_id") // FK 설정, 연관관계 주인 p.. 2024. 10. 29.
예약 조회 API 개발 엔티티 직접 노출@GetMapping("/api/v1/simple-reserves")public List reserve1(){ List all = reserveRepository.findAllByString(new ReserveSearch()); for (Reserve reserve : all) { reserve.getMember().getName(); // Lazy 강제 초기화 } return all;}엔티티를 직접 노출하는 것은 좋지 않음엔티티를 DTO로 변환@GetMapping("/api/v2/simple-reserves")public List reserveV2(){ List reserves = reserveRepository.findAllByString(ne.. 2024. 10. 24.
회원 관련 API 개발 회원 등록 API1. 엔티티를 Request Body에 직접 매핑(요청 값으로 엔티티를 직접 받는 경우)@Entity@Getter@Setterpublic class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; @NotEmpty private String name; private String phone; @Embedded private Address address; @OneToMany(mappedBy = "member") private List reserves = new ArrayList();}@PostMapping("/api/v1/members")public .. 2024. 10. 17.
설계 엔티티 설계기능 설계회원 기능    회원 등록    회원 조회업체 기능    업체 등록    업체 수정    업체 조회예약 기능    예약 등록    예약 수정    예약 조회    예약 취소기타 요구사항    업체는 예약된 시간에 이용가능 차량 초과 시 예약 불가    업체에 예약 가능한 서비스는 오픈형(openShop), 프라이빗형(privateShop) 존재    업체를 TYPE으로 구분(DiscriminatorColum) 2024. 9. 20.