From fd8106c29410d5861eb78635594884353a77987c Mon Sep 17 00:00:00 2001 From: haerong22 Date: Mon, 9 Jan 2023 01:07:01 +0900 Subject: [PATCH] #31 loan: create counsel entity --- .../com/example/loan/domain/BaseEntity.java | 33 ++++++++++++ .../java/com/example/loan/domain/Counsel.java | 51 +++++++++++++++++++ .../src/main/resources/application.properties | 1 - loan/src/main/resources/application.yml | 25 +++++++++ 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 loan/src/main/java/com/example/loan/domain/BaseEntity.java create mode 100644 loan/src/main/java/com/example/loan/domain/Counsel.java delete mode 100644 loan/src/main/resources/application.properties create mode 100644 loan/src/main/resources/application.yml diff --git a/loan/src/main/java/com/example/loan/domain/BaseEntity.java b/loan/src/main/java/com/example/loan/domain/BaseEntity.java new file mode 100644 index 00000000..bab00675 --- /dev/null +++ b/loan/src/main/java/com/example/loan/domain/BaseEntity.java @@ -0,0 +1,33 @@ +package com.example.loan.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Getter; +import lombok.Setter; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.Column; +import javax.persistence.EntityListeners; +import javax.persistence.MappedSuperclass; +import java.io.Serializable; +import java.time.LocalDateTime; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@Getter +@Setter +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +public abstract class BaseEntity implements Serializable { + + @CreatedDate + @Column(updatable = false, columnDefinition = "datetime default CURRENT_TIMESTAMP NOT NULL COMMENT '생성일자'") + private LocalDateTime createdAt; + + @LastModifiedDate + @Column(columnDefinition = "datetime default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL COMMENT '수정일자'") + private LocalDateTime updatedAt; + + @Column(columnDefinition = "bit default false NOT NULL COMMENT '이용가능여부'") + private Boolean isDeleted; +} diff --git a/loan/src/main/java/com/example/loan/domain/Counsel.java b/loan/src/main/java/com/example/loan/domain/Counsel.java new file mode 100644 index 00000000..eb4d7fba --- /dev/null +++ b/loan/src/main/java/com/example/loan/domain/Counsel.java @@ -0,0 +1,51 @@ +package com.example.loan.domain; + +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.hibernate.annotations.Where; + +import javax.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@DynamicInsert +@DynamicUpdate +@Where(clause = "is_deleted=false") +public class Counsel extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(nullable = false, updatable = false) + private Long counselId; + + @Column(nullable = false, columnDefinition = "datetime COMMENT '신청일자'") + private LocalDateTime appliedAt; + + @Column(nullable = false, columnDefinition = "varchar(12) COMMENT '상담 요청자'") + private String name; + + @Column(nullable = false, columnDefinition = "varchar(23) COMMENT '상담 요청자 전화번호'") + private String cellPhone; + + @Column(columnDefinition = "varchar(50) DEFAULT NULL COMMENT '상담 요청자 이메일'") + private String email; + + @Column(columnDefinition = "text DEFAULT NULL COMMENT '상담메모'") + private String memo; + + @Column(columnDefinition = "varchar(50) DEFAULT NULL COMMENT '주소'") + private String address; + + @Column(columnDefinition = "varchar(50) DEFAULT NULL COMMENT '상세 주소'") + private String addressDetail; + + @Column(columnDefinition = "varchar(5) DEFAULT NULL COMMENT '우편번호'") + private String zipCode; + +} diff --git a/loan/src/main/resources/application.properties b/loan/src/main/resources/application.properties deleted file mode 100644 index 8b137891..00000000 --- a/loan/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/loan/src/main/resources/application.yml b/loan/src/main/resources/application.yml new file mode 100644 index 00000000..b2b23134 --- /dev/null +++ b/loan/src/main/resources/application.yml @@ -0,0 +1,25 @@ +server: + port: 8080 + +spring: + datasource: + driverClassName: org.h2.Driver + url: jdbc:h2:mem:testdb + username: sa + password: + jpa: + hibernate: + ddl-auto: create + properties: + hibernate: + format_sql: true + naming: + physical-strategy: org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy + database-platform: org.hibernate.dialect.H2Dialect + h2: + console: + path: /h2-console + enabled: true + +logging.level: + org.hibernate.SQL: debug \ No newline at end of file