-
Notifications
You must be signed in to change notification settings - Fork 1
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
Conversation
@Entity | ||
public class ClinicHeart { | ||
// 공감한 유저, 공감한 클리닉 글 | ||
@Id |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@GeneratedValue를 사용하지 않으신 이유가 있으실까요?
There was a problem hiding this comment.
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 { | ||
// 공감한 유저, 공감한 클리닉 글 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
주석은 특별한 사항이 없으면 안하시는게 좋을 것 같습니다
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
유저가 여러 개의 공감한 감정글을 가질 수 있으므로 User : ClinicHeart = 1 : n이 맞습니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아하 이해했습니다..! 꼼꼼하게 봐주셔서 감사합니다ㅠ 저희가 이해하고 적용하는데 조금 시간이 걸렸네요,,!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그러면 여러 개를 작성할 수 있는 영역이 n이 되는 건가요?
공감한 글같은 경우, 글에서 여러 개의 공감한 글을 꺼낼 수 있으니 1:n으로 봐야한다고 생각하는데 제 생각이 옳은지 모르겠습니다
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
유저는 여러개의 클리닉 글을 작성할 수 있으므로 1 : 1 매핑이 아닙니다
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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(); |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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(); |
There was a problem hiding this comment.
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") |
There was a problem hiding this comment.
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이 왜 저거인가요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 책을 보며 OneToMany일 때, mappedBy를 통해 묶는 걸 확인했습니다. 아직 연관관계에 대해서 명확하게 알지 못해 자주 보이는 방식으로 작성하다보니 JoinColumn을 사용하게 되었습니다.
그리고 name의 작명은 유저가 누른 공감이라는 의미로 객체가 좀 더 어떤 것인지 명확하게 알아보고자 작성하게 되었습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mappedBy나 name은 단순히 아무 값이나 넣을 수 없습니다. 어떤 값이 들어가야 하는지 확인 부탁드립니다
closed#{4}로 되어있던데 일부로 의도하신건가요? 일단 closed#4로 바꾸긴 했습니다 |
아 {}부분은 깜빡하고 못 지웠습니다. 다음에 유의하겠습니다 |
코드 다시 작성하여 PR하겠습니다 |
refactor: Entity 구조 재설정 -#4
변경 사항
엔티티, 테이블 구조를 재설정 하였습니다.
유저 : 감정글 = 1 : 1
감정공감글 : 유저 = 1 : N
감정공감글 : 감정글 = 1 : N
클리닉공감글 : 유저 = 1 : N
클리닉공감글 : 클리닉글 = 1 : N
으로 설정하였습니다.
참고 사항
closed #4