skill/Java.Kotlin

JPA PK 자동 증가일 경우, 등록 방법

have a nice day :D 2021. 5. 12. 09:05
반응형

PK가 auto_increment인 테이블을 만들어 줍니다.

CREATE TABLE noti (
	noti_seq	int	NOT NULL PRIMARY KEY AUTO_INCREMENT,
	noti_type   varchar(2)		NOT NULL,
	noti_subj	varchar(100)	NOT NULL,
	noti_cont	varchar(2000)	NOT NULL,
	hit_cnt		int	NOT NULL	DEFAULT 0,
	cre_dttm	datetime		NOT NULL,
	mod_dttm	datetime		NULL,
	cre_id		varchar(20)		NULL,
	mod_id		varchar(20)		NULL
);

CREATE TABLE noti_file (
	noti_file_seq	int	NOT NULL PRIMARY KEY AUTO_INCREMENT,
	noti_seq		int	NOT NULL,
	noti_file_ori_nm	varchar(100)	NOT NULL,
	noti_file_path	varchar(200)	NOT NULL
);

 

AUTO_INCREMENT는 @Id 및 @GeneratedValue(strategy= GenerationType.IDENTITY) 어노테이션을 선언 해 줍니다.

import lombok.Getter
import lombok.Setter
import java.time.LocalDateTime
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id

@Getter
@Setter
@Entity
data class Noti(@Id
                @GeneratedValue(strategy= GenerationType.IDENTITY)
                var notiSeq: Int? = 0,
                  var notiType: String,
                  var notiSubj: String,
                  var notiCont: String,
                  var hitCnt: Int? = 0,
                  var creDttm: LocalDateTime,
                  var modDttm: LocalDateTime?,
                  var creId: String?,
                  var modId: String?)

 

Repository 설정 방법

import org.springframework.data.jpa.repository.JpaRepository

interface NotiRepository: JpaRepository<Noti, Int> {
 
}

저장 시, seq는 제외하면 자동증감 하여 저장됩니다.

fun save() {
	notiRepository.save(Noti("01","제목입니다.","내용입니다.", null, LocalDateTime.now(), null, 'mberId', null))
}

 

반응형