From c9d0985c7f2fda30fffee597a16e9f3fe5cea96f Mon Sep 17 00:00:00 2001 From: s-choi Date: Wed, 16 Sep 2026 14:36:44 +0900 Subject: [PATCH] =?UTF-8?q?[ADD]=20=E3=82=B7=E3=82=B9=E3=83=86=E3=83=A0?= =?UTF-8?q?=E3=81=AB=E5=BF=85=E8=A6=81=E3=81=AAEntity=E3=82=AF=E3=83=A9?= =?UTF-8?q?=E3=82=B9=E3=82=92=E4=BD=9C=E6=88=90=E3=81=97=E3=81=BE=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/infra/entity/AllocationEntity.java | 35 +++++++++ .../demo/app/infra/entity/CategoryEntity.java | 31 ++++++++ .../demo/app/infra/entity/CourseEntity.java | 34 +++++++++ .../demo/app/infra/entity/GoalEntity.java | 43 +++++++++++ .../demo/app/infra/entity/QuestionEntity.java | 29 ++++++++ .../app/infra/entity/TransactionEntity.java | 45 ++++++++++++ .../demo/app/infra/entity/UserEntity.java | 71 +++++++++++++++++++ .../SelectTransactionController.java | 11 +++ .../presentation/form/TransactionForm.java | 14 ++++ 9 files changed, 313 insertions(+) create mode 100644 src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java create mode 100644 src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java create mode 100644 src/main/java/com/example/demo/app/infra/entity/CourseEntity.java create mode 100644 src/main/java/com/example/demo/app/infra/entity/GoalEntity.java create mode 100644 src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java create mode 100644 src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java create mode 100644 src/main/java/com/example/demo/app/infra/entity/UserEntity.java create mode 100644 src/main/java/com/example/demo/app/presentation/controller/SelectTransactionController.java create mode 100644 src/main/java/com/example/demo/app/presentation/form/TransactionForm.java diff --git a/src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java b/src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java new file mode 100644 index 0000000..8771901 --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/entity/AllocationEntity.java @@ -0,0 +1,35 @@ +package com.example.demo.app.infra.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "allocation") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class AllocationEntity { + + @Id + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "category_id") + private CategoryEntity categoryEntity; + + @Id + @OneToOne(mappedBy = "courseId", fetch = FetchType.LAZY) + private CourseEntity courseEntity; + + @Column(name = "allocation_ratio", nullable = false) + private Integer allocationRatio; + +} diff --git a/src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java b/src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java new file mode 100644 index 0000000..8681303 --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/entity/CategoryEntity.java @@ -0,0 +1,31 @@ +package com.example.demo.app.infra.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "category") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CategoryEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "category_id") + private Integer categoryId; + + @Column(name = "category_name", nullable = false) + private String categoryName; + + @Column(name = "transaction_type", nullable = false) + private Integer transactionType; +} diff --git a/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java b/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java new file mode 100644 index 0000000..b722267 --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/entity/CourseEntity.java @@ -0,0 +1,34 @@ +package com.example.demo.app.infra.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Table; + +import org.springframework.data.annotation.Id; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "course") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CourseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "course_id") + private Integer courseId; + + @Column(name = "course_name", nullable = false) + private String courseName; + + + @Column(name = "description", nullable = false) + private String description; + +} diff --git a/src/main/java/com/example/demo/app/infra/entity/GoalEntity.java b/src/main/java/com/example/demo/app/infra/entity/GoalEntity.java new file mode 100644 index 0000000..bef492f --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/entity/GoalEntity.java @@ -0,0 +1,43 @@ +package com.example.demo.app.infra.entity; + +import java.time.LocalDate; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "goal") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class GoalEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "goal_id") + private Integer goalId; + + @Column(name = "goal_title", nullable = true) + private String goalTitle; + + @Column(name = "goal_subtitle", nullable = true) + private String goalSubtitle; + + @Column(name = "target_amount", nullable = false) + private Integer targetAmount; + + @Column(name = "deadline", nullable = false) + private LocalDate deadline; + + @Column(name = "goal_complete", nullable = false) + private Integer goalComplete; + +} diff --git a/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java b/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java new file mode 100644 index 0000000..789ad6e --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/entity/QuestionEntity.java @@ -0,0 +1,29 @@ +package com.example.demo.app.infra.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "question") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class QuestionEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "secret_question_id") + private Integer secretQuestionId; + + @Column(name = "question_text", nullable = false) + private String questionText; + +} diff --git a/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java b/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java new file mode 100644 index 0000000..fe49690 --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/entity/TransactionEntity.java @@ -0,0 +1,45 @@ +package com.example.demo.app.infra.entity; + +import java.time.LocalDate; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "transaction") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class TransactionEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "transaction_id") + private Integer transactionId; + + @Column(name = "amount", nullable = false) + private Integer amount; + + @Column(name = "transaction_date", nullable = false) + private LocalDate transactionDate; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "userId") + private UserEntity userEntity; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "categoryId") + private CategoryEntity categoryEntity; + +} diff --git a/src/main/java/com/example/demo/app/infra/entity/UserEntity.java b/src/main/java/com/example/demo/app/infra/entity/UserEntity.java new file mode 100644 index 0000000..edbf804 --- /dev/null +++ b/src/main/java/com/example/demo/app/infra/entity/UserEntity.java @@ -0,0 +1,71 @@ +package com.example.demo.app.infra.entity; + +import java.time.LocalDate; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "user") +@Data +@NoArgsConstructor +@AllArgsConstructor +public class UserEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "user_id") + private Integer userId; + + @Column(name = "user_name", nullable = false) + private String userName; + + @Column(name = "mail_address", nullable = false) + private String mailAddress; + + @Column(name = "password", nullable = false) + private String password; + + @Column(name = "secret_answer", nullable = false) + private String secretQuestionAnswer; + + @Column(name = "birth_date", nullable = false) + private LocalDate birthDate; + + @Column(name = "saving", nullable = false) + private Integer saving; + + @Column(name = "annual_income", nullable = false) + private Integer annualIncome; + + @Column(name = "monthly_budget", nullable = false) + private Integer monthlyBudget; + + @Column(name = "delete_flag", nullable = false) + private Integer deleteFlag; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "question_id") + private QuestionEntity questionEntity; + + @OneToOne(mappedBy = "goalId", fetch = FetchType.LAZY) + @JoinColumn(name = "goal_id") + private GoalEntity goalEntity; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "course_id") + private CourseEntity courseEntity; + +} diff --git a/src/main/java/com/example/demo/app/presentation/controller/SelectTransactionController.java b/src/main/java/com/example/demo/app/presentation/controller/SelectTransactionController.java new file mode 100644 index 0000000..7383677 --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/controller/SelectTransactionController.java @@ -0,0 +1,11 @@ +package com.example.demo.app.presentation.controller; + +import org.springframework.stereotype.Controller; + +import lombok.RequiredArgsConstructor; + +@Controller +@RequiredArgsConstructor +public class SelectTransactionController { + +} diff --git a/src/main/java/com/example/demo/app/presentation/form/TransactionForm.java b/src/main/java/com/example/demo/app/presentation/form/TransactionForm.java new file mode 100644 index 0000000..002dd07 --- /dev/null +++ b/src/main/java/com/example/demo/app/presentation/form/TransactionForm.java @@ -0,0 +1,14 @@ +package com.example.demo.app.presentation.form; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TransactionForm { + + + +}