From 212b3138e4b2dde6e2c38abbca5ba1bcc890f545 Mon Sep 17 00:00:00 2001 From: MangKyu Date: Mon, 3 Jan 2022 01:58:39 +0900 Subject: [PATCH] Move resourceId to individual entities --- .../app/common/entity/BaseEntity.java | 3 --- .../interview/app/quiz/entity/Quiz.java | 14 +++++++---- .../interview/app/user/entity/User.java | 3 +++ .../testutils/EntityCreationUtils.java | 23 +++++++++++-------- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/mangkyu/employment/interview/app/common/entity/BaseEntity.java b/src/main/java/com/mangkyu/employment/interview/app/common/entity/BaseEntity.java index 5d0bc01..55df716 100644 --- a/src/main/java/com/mangkyu/employment/interview/app/common/entity/BaseEntity.java +++ b/src/main/java/com/mangkyu/employment/interview/app/common/entity/BaseEntity.java @@ -26,9 +26,6 @@ public abstract class BaseEntity implements Serializable { @Column(name = "id", nullable = false) private Long id; - @Column(nullable = false) - private String resourceId; - @CreationTimestamp @Column(nullable = false, length = 20, updatable = false) private LocalDateTime createdAt; diff --git a/src/main/java/com/mangkyu/employment/interview/app/quiz/entity/Quiz.java b/src/main/java/com/mangkyu/employment/interview/app/quiz/entity/Quiz.java index 3551247..dc51536 100644 --- a/src/main/java/com/mangkyu/employment/interview/app/quiz/entity/Quiz.java +++ b/src/main/java/com/mangkyu/employment/interview/app/quiz/entity/Quiz.java @@ -1,12 +1,10 @@ package com.mangkyu.employment.interview.app.quiz.entity; +import com.mangkyu.employment.interview.app.answer.entity.Answer; import com.mangkyu.employment.interview.app.common.entity.BaseEntity; import com.mangkyu.employment.interview.enums.value.QuizCategory; import com.mangkyu.employment.interview.enums.value.QuizLevel; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; +import lombok.*; import javax.persistence.*; import java.util.List; @@ -19,6 +17,9 @@ import java.util.List; @AllArgsConstructor public class Quiz extends BaseEntity { + @Column(nullable = false) + private String resourceId; + private String title; @Enumerated(EnumType.STRING) @@ -29,4 +30,9 @@ public class Quiz extends BaseEntity { @Enumerated(EnumType.STRING) private List quizLevel; +// @Setter +// @OneToOne(fetch = FetchType.LAZY) +// @JoinColumn(name = "answer_id") +// private Answer answer; + } \ No newline at end of file diff --git a/src/main/java/com/mangkyu/employment/interview/app/user/entity/User.java b/src/main/java/com/mangkyu/employment/interview/app/user/entity/User.java index d364e80..ad377ef 100644 --- a/src/main/java/com/mangkyu/employment/interview/app/user/entity/User.java +++ b/src/main/java/com/mangkyu/employment/interview/app/user/entity/User.java @@ -25,6 +25,9 @@ import static com.mangkyu.employment.interview.app.quiz.constants.QuizConstants. @AllArgsConstructor public class User extends BaseEntity { + @Column(nullable = false) + private String resourceId; + @Column(unique = true) private String email; diff --git a/src/test/java/com/mangkyu/employment/interview/testutils/EntityCreationUtils.java b/src/test/java/com/mangkyu/employment/interview/testutils/EntityCreationUtils.java index 8d9a40b..0bb5d9d 100644 --- a/src/test/java/com/mangkyu/employment/interview/testutils/EntityCreationUtils.java +++ b/src/test/java/com/mangkyu/employment/interview/testutils/EntityCreationUtils.java @@ -9,45 +9,50 @@ import com.mangkyu.employment.interview.enums.value.QuizDay; import com.mangkyu.employment.interview.enums.value.QuizLevel; import org.springframework.test.util.ReflectionTestUtils; +import java.time.LocalDateTime; import java.util.*; public final class EntityCreationUtils { public static Quiz quiz() { final Quiz quiz = Quiz.builder() + .resourceId(UUID.randomUUID().toString()) .title("quiz") .quizCategory(QuizCategory.JAVA) .quizLevel(Arrays.asList(QuizLevel.NEW, QuizLevel.JUNIOR, QuizLevel.SENIOR)) .build(); - ReflectionTestUtils.setField(quiz, "resourceId", UUID.randomUUID().toString()); + ReflectionTestUtils.setField(quiz, "createdAt", LocalDateTime.now()); return quiz; } public static Quiz quiz(final String title, final QuizCategory category, final List quizLevelList) { final Quiz quiz = Quiz.builder() + .resourceId(UUID.randomUUID().toString()) .title(title) .quizCategory(category) .quizLevel(quizLevelList) .build(); - ReflectionTestUtils.setField(quiz, "resourceId", UUID.randomUUID().toString()); + ReflectionTestUtils.setField(quiz, "createdAt", LocalDateTime.now()); return quiz; } public static User user() { final User user = User.builder() + .resourceId(UUID.randomUUID().toString()) .email("minkyu@test.com") .quizLevel(QuizLevel.JUNIOR) .solvedQuizList(Collections.emptyList()) .build(); - ReflectionTestUtils.setField(user, "resourceId", UUID.randomUUID().toString()); + ReflectionTestUtils.setField(user, "createdAt", LocalDateTime.now()); return user; } public static User user(final int quizSize, final Set daySet, final Set categorySet) { final User user = User.builder() + .resourceId( UUID.randomUUID().toString()) .email("minkyu@test.com") .quizLevel(QuizLevel.JUNIOR) .solvedQuizList(Collections.emptyList()) @@ -55,28 +60,26 @@ public final class EntityCreationUtils { .quizDaySet(daySet) .quizCategorySet(categorySet) .build(); - ReflectionTestUtils.setField(user, "resourceId", UUID.randomUUID().toString()); + ReflectionTestUtils.setField(user, "createdAt", LocalDateTime.now()); return user; } public static SolvedQuiz solvedQuiz(final Quiz quiz, final User user) { - final SolvedQuiz solvedQuiz = SolvedQuiz.builder() + return SolvedQuiz.builder() .quiz(quiz) .user(user) .build(); - - ReflectionTestUtils.setField(solvedQuiz, "resourceId", UUID.randomUUID().toString()); - return solvedQuiz; } public static Answer answer(final Quiz quiz) { final Answer answer = Answer.builder() - .quiz(quiz) + .resourceId(UUID.randomUUID().toString()) +// .quiz(quiz) .desc("desc") .build(); - ReflectionTestUtils.setField(answer, "resourceId", UUID.randomUUID().toString()); + ReflectionTestUtils.setField(answer, "createdAt", LocalDateTime.now()); return answer; }