#31 loan: create counsel entity

This commit is contained in:
haerong22
2023-01-09 01:07:01 +09:00
parent 4992bcfe1b
commit fd8106c294
4 changed files with 109 additions and 1 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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