Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor : Entity 구조 재설정 #5

Closed
wants to merge 1 commit into from

Conversation

wimmings
Copy link
Member

@wimmings wimmings commented Feb 19, 2023

refactor: Entity 구조 재설정 -#4

변경 사항

  1. 엔티티, 테이블 구조를 재설정 하였습니다.
    유저 : 감정글 = 1 : 1

    감정공감글 : 유저 = 1 : N
    감정공감글 : 감정글 = 1 : N

    클리닉공감글 : 유저 = 1 : N
    클리닉공감글 : 클리닉글 = 1 : N

으로 설정하였습니다.

  1. 불필요한 복수형은 모두 단수형으로 바꾸었습니다.
  2. 감정을 긍/부정으로 구성하였습니다.
  3. User 정보에 본명과 닉네임을 두어서 대나무숲과 클리닉 센터에서는 닉네임을 쓰도록 민기님과 상의하여 결정하였습니다.
  4. 감정글에 제목을 없애고, 삭제 여부를 추가하였습니다.

참고 사항

  • 리뷰어가 참고할 수 있는 내용 1

closed #4

@wimmings wimmings requested review from grand7070 and kuku-kun and removed request for grand7070 and kuku-kun February 19, 2023 06:26
@wimmings wimmings assigned kuku-kun and wimmings and unassigned kuku-kun Feb 19, 2023
@Entity
public class ClinicHeart {
// 공감한 유저, 공감한 클리닉 글
@Id
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GeneratedValue를 사용하지 않으신 이유가 있으실까요?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

죄송합니다. 잠시 착오가 있었던 것 같습니다

@NoArgsConstructor
@Entity
public class ClinicHeart {
// 공감한 유저, 공감한 클리닉 글
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

주석은 특별한 사항이 없으면 안하시는게 좋을 것 같습니다

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 알겠습니다 !

private Long id;

// ClinicHeart : User = 1 : n 매핑
@OneToMany
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

유저가 여러 개의 공감한 감정글을 가질 수 있으므로 User : ClinicHeart = 1 : n이 맞습니다

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 이해했습니다..! 꼼꼼하게 봐주셔서 감사합니다ㅠ 저희가 이해하고 적용하는데 조금 시간이 걸렸네요,,!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그러면 여러 개를 작성할 수 있는 영역이 n이 되는 건가요?
공감한 글같은 경우, 글에서 여러 개의 공감한 글을 꺼낼 수 있으니 1:n으로 봐야한다고 생각하는데 제 생각이 옳은지 모르겠습니다

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아닙니다 이제 처음 하시는데요 그럴 수 있습니다
넵 맞습니다. 글 하나에 대해서 여러 개의 공감한 글이 생길 수 있으니 글과 공감한 글은 1:n입니다
사실 그 전에 유저와 글은 공감에 대해서 n:m 관계인데 @manytomany는 지양하므로 n:m 관계는 1:n, n:1로 나눠서 별도의 테이블을 만듭니다. 여기서는 이 별도의 테이블이 공감한 글이라는 테이블입니다

private String content;

// User 와 ClinicPost 1:1 매핑
@OneToOne
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

유저는 여러개의 클리닉 글을 작성할 수 있으므로 1 : 1 매핑이 아닙니다

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 넵 헷갈렸던 부분이 많았습니다.. 수정하겠습니다

@JoinColumn(name = "USER_ID")
private User user;

// 삭제 여부 1:삭제 0:삭제X
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1과 0으로 구분할 수도 있겠지만 DB에서 1과 0으로 필드가 되어있으면 정확히 어떤 값인지 판단하기 어려울 수 있습니다


List<Posts> findAll();
List<FeelingPost> findAll();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spring Data JPA를 사용하셨으므로 해당 함수는 이미 구현되어 있습니다

@@ -11,7 +11,6 @@ public interface UserRepository extends JpaRepository<User, Long> {
User save(User user);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

save는 값을 return하지 않으며 Spring Data JPA를 사용하셨으므로 해당 함수는 이미 구현되어 있습니다

@@ -11,7 +11,6 @@ public interface UserRepository extends JpaRepository<User, Long> {
User save(User user);

Optional<User> findById(Long id);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spring Data JPA를 사용하셨으므로 해당 함수는 이미 구현되어 있습니다

@@ -11,7 +11,6 @@ public interface UserRepository extends JpaRepository<User, Long> {
User save(User user);

Optional<User> findById(Long id);
Optional<User> findByName(String name);

List<User> findAll();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spring Data JPA를 사용하셨으므로 해당 함수는 이미 구현되어 있습니다


// ClinicHeart : User = 1 : n 매핑
@OneToMany
@JoinColumn(name = "CLINIC_HEART_USER")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

위에서 말씀드린 것처럼 OneToMany가 아니어서 상관없겠지만 OneToMany로 할때 @joincolumn이 아닌 것으로 알고 있습니다. 연관관계의 주인이 왠만하면 N에 있어서요. 또 안에 들어가는 name이 왜 저거인가요?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재 책을 보며 OneToMany일 때, mappedBy를 통해 묶는 걸 확인했습니다. 아직 연관관계에 대해서 명확하게 알지 못해 자주 보이는 방식으로 작성하다보니 JoinColumn을 사용하게 되었습니다.
그리고 name의 작명은 유저가 누른 공감이라는 의미로 객체가 좀 더 어떤 것인지 명확하게 알아보고자 작성하게 되었습니다.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mappedBy나 name은 단순히 아무 값이나 넣을 수 없습니다. 어떤 값이 들어가야 하는지 확인 부탁드립니다

@grand7070
Copy link
Collaborator

closed#{4}로 되어있던데 일부로 의도하신건가요? 일단 closed#4로 바꾸긴 했습니다

@wimmings
Copy link
Member Author

아 {}부분은 깜빡하고 못 지웠습니다. 다음에 유의하겠습니다

@wimmings wimmings closed this Feb 21, 2023
@wimmings
Copy link
Member Author

코드 다시 작성하여 PR하겠습니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEATURE] Entity 구조 재설정
3 participants