2022. 11. 3. 19:25ㆍcheckIn 프로젝트(SpringBoot)
@Entity - @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라고 불림 테이블자동생성됨
@IdClass(BoarderPK.class) - 복합키를 만들기 위해서 추가해야하는 애노테이션
Board 관련 패키지 생성
Entity 추가
package com.teamproject.checkin.boardService;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class BorderRepository {
@Id @GeneratedValue
private String corpCode;
@Id @GeneratedValue
private String partCode;
@Id @GeneratedValue
private String boardType;
@Id @GeneratedValue
private Long boardNo;
private String boardTitle;
private String boardContent;
}
Run시 에러발생
이유는 복합키 때문이였다.
복합키 설정을 의해 BoarderPK 클레스 생성
//복합키를 사용 할 수 있게 implements Serializable 임플리먼트 헤준다
package com.teamproject.checkin.boardService;
import lombok.Data;
import java.io.Serializable;
@Data
//복합키를 사용 할 수 있게 implements Serializable 임플리먼트
public class BoarderPK implements Serializable {
private String corpCode;
private String partCode;
private String boardType;
private Long boardNo;
}
package com.teamproject.checkin.boardService;
import javax.persistence.*;
@Entity
@IdClass(BoarderPK.class)
public class Boarder {
@Id
private String corpCode;
@Id
private String partCode;
@Id
private String boardType;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)//자동으로 PK 값 입력이 됨 테스트 필요
private Long boardNo;
private String boardTitle;
private String boardContent;
}
Hibernate:
create table boarder (
board_no bigint not null auto_increment,
board_type varchar(255) not null,
corp_code varchar(255) not null,
part_code varchar(255) not null,
board_content varchar(255),
board_title varchar(255),
primary key (board_no, board_type, corp_code, part_code)
) engine=InnoDB
잘 동작된다.
@GeneratedValue(strategy = GenerationType.IDENTITY)
위의 부분만 나중에 수정해주도록하자
설계한 게시판 구조는, 회사,부서,게시판타입 에 따라 boardNo를 가지도록 설계를 했는데
위의 방식으로 잘 돌아갈지 확인을 해보아야 할 것 같다.
'checkIn 프로젝트(SpringBoot)' 카테고리의 다른 글
Spring Boot + JPA + Mysql 게시판 (1) 게시글 등록_수정본 (0) | 2023.01.08 |
---|---|
Spring Boot + JPA + Mysql 게시판 (1) 게시글 등록 (0) | 2023.01.07 |
프로젝트 패키지 특이사항 (0) | 2022.11.03 |
thymeleaf ,BootStrap 레이아웃 적용 (0) | 2022.11.03 |
팀 프로젝트 기본세팅 (0) | 2022.11.03 |