오늘은 팀프로젝트 2일차이다. 오늘 진행한 작업은 다음과 같다.
1. Card기능에 대한 전반적인 구조 잡기 및 복합기 생성
1. ERD를 기반으로 오늘 Trello Card Entity와 Controller, Service에 대한 전반적인 코드를 작성했으며 아직 완성은 하지 못했다 Card가 생각보다 고려해야할 부분이 너무 많았다.
주요 고민은 Update과정에서 작업자를 추가해야하는가? 작업자 초대 기능을 구성할 계획이였기 때문에 RestAPI 측면에서 맞는지 모르겠다. 내일 직접 찾아보면서 고민에 대한 해결을 해볼 예정이다.
추가적으로 복합키인 worker와 workerId를 추가하여 복합키 기능을 구현했다. 복합키를 통해 cardId와 userId를 가지고 있는 고유한 workerId 생성했다.
@Embeddable
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WorkerID implements Serializable {
private Long userId;
private Long cardId;
}
Worker에서는 복합키인 WorkerId와 Card정보 User정보를 FK처리를 할수 있다.
@Entity
@Getter
@NoArgsConstructor
public class Worker {
@EmbeddedId
private WorkerID id;
@Setter
@MapsId("cardId")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "card_id")
private Card card;
@Setter
@MapsId("userId")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
public Worker(Card card, User user){
this.card = card;
this.user = user;
}
}
이렇게 설정하고 Card Entity에도 List<Worker> wokers를 설정했는데 여기서 주로 고민했던 문제는 Card를 생성할때 CardRepository에 저장을 해야 Card Id가 부여될텐데 woker를 wokerRepository에 저장할 때는 문제가 없지만 Card Entity에서 Card에 대한 정보와 함께 worker도 등록을 시키고 싶어 Card에 있는 List wokers를 통해 등록을 할려고하면 문제가 된다. 즉 간단하게 말하면 Card save -> worker save -> Card save를해야 Card에 워커리스트를 저장할 수 있는것이다.
내일은 이문제를 어떻게 해결을 해야할지 고민해보면서 막혔던 코드작성을 다시한번 진행할것이다.
'내일 배움 캠프' 카테고리의 다른 글
2023-12-29 (0) | 2023.12.29 |
---|---|
2023-12-28 (2) | 2023.12.29 |
2023-12-26 (0) | 2023.12.27 |
2023-12-25 (0) | 2023.12.27 |
2023-12-22 (0) | 2023.12.24 |