Spring Boot 프로그램에서 Repository와 Entity를 작성해보자
Spring Boot 프로젝트 /src/java/com.example
폴더 밑에 Entity
라는 패키지를 만든다
테이블이 5개이므로 5개의 Entity를 만들어보겠습니다
Entity 패키지 안에 다음과 같은 java class 파일을 만든다
우리가 Spring Boot 프로젝트에 Lombok을 받아왔기 때문에 Entity에 @Data
어노테이션을 삽입해준다
@Data
삽입이 안될 것이다 @AllArgsConstructor
어노테이션을 같이 삽입하자
@NoArgsConstructor
@Builder
@Entity
= 해당 클래스를 Entity 클래스로 사용하겠다고 선언하는 어노테이션
@Table
= 테이블을 매핑하기 위한 어노테이션
= 데이터베이스에 있는 해당하는 테이블과 현재 클래스를 매핑 시킴
총 6개의 어노테이션을 작성한다
package com.hyeonjoonpark.board_crud.Entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name="User")
@Table(name="User")
public class UserEntity {
}
@Entity(name="User")
@Table(name="User")
과 같이 name을 지정한다
@Table
클래스의 name은 MySQL 테이블과 같은 이름으로 지정해준다
이제 User 클래스 안에 데이터베이스 컬럼을 작성한다
package com.hyeonjoonpark.board_crud.Entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name="User")
@Table(name="User")
public class UserEntity {
@Id
private String userEmail;
private String userPassword;
private String userNickname;
private String userPhoneNumber;
private String userAddress;
private String userProfile;
}
userEmail 는 PK로 지정이 되어있기 때문에 @Id
어노테이션을 작성해준다
BoardEntity도 똑같이 작성해준다
package com.hyeonjoonpark.board_crud.Entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name="Board")
@Table(name="Board")
public class BoardEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int boardNumber;
private String boardTitle;
private String boardContent;
private String boardImage;
private String boardVideo;
private String boardFile;
private String boardWriterEmail;
private String boardWriterProfile;
private String boardWriterNickname;
private String boardWriteDate;
private int boardClickCount;
private int boardLikeCount;
private int boardCommentCount;
}
boardNumber가 Auto Increment로 지정되어있기 때문에
@GeneratedValue(strategy = GenerationType.IDENTITY)
어노테이션 하나 추가해주자.
package com.hyeonjoonpark.board_crud.Entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name="PopularSearch")
@Table(name="PopularSearch")
public class PopularSearchEntity {
@Id
private String popularTerm;
private int popularSearchCount;
}
PopularSearch 클래스도 똑같은 형식으로 만들어준다
package com.hyeonjoonpark.board_crud.Entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name="Likes")
@Table(name="Likes")
public class LikeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int likeId;
private int boardNumber;
private String userEmail;
private String likeUserProfile;
private String likeUserNickname;
}
LikeEntity 클래스도 똑같은 방법으로 만들어준다
package com.hyeonjoonpark.board_crud.Entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name="Comment")
@Table(name="Comment")
public class CommentEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int commentId;
private int boardNumber;
private String userEmail;
private String commentUserProfile;
private String commentUserNickname;
private String commentWriteDate;
private String commentCotent;
}
마지막으로 CommentEntity 클래스도 작성해준다
Repository 만드는 것도 같이 포스팅할려고 했지만 길이가 너무 길어져서
다음 블로그에 작성할 것이다