[JPA] Annotations - Sequence
👍Oracle 자체적인 sequence 자동생성 및 적용
👀 @GeneratedValues
엔터티 생성시 PK의 기본값을 자동생성
@Data
@Entity
public class Member {
@Id
@GeneratedValue
@Column(name = "member_id")
private Long memberId;
@Column(length = 20) // VARCHAR(20)
private String name;
@Column(name = "team_id")
private Long teamId;
}
🔵 기본으로 1에서 1++ 로 올라가는 sequence 생성 후 Entity 생성
Hibernate: create sequence hibernate_sequence start with 1 increment by 1
Hibernate: create table Member (member_id number(19,0) not null, name varchar2(20), team_id number(19,0), primary key (member_id))
🙊 without @GeneratedValue
sequence 생성 없이 Entity 생성
Hibernate: create table Member (member_id number(19,0) not null, name varchar2(20), team_id number(19,0), primary key (member_id))
👀 @SequenceGenerator
Entity 에서 참조할 수 있는 시퀀스를 생성한다
@Entity
@SequenceGenerator(
name="member_seq_gen", //시퀀스 제너레이터 이름
sequenceName="member_seq_id", //시퀀스 이름
initialValue=1, //시작값
allocationSize=1 //메모리를 통해 할당할 범위 사이즈 default = 50
)
public class Member {
@Id
@GeneratedValue(strategy= GenerationType.SEQUENCE,
generator="member_seq_gen")
@Column(name = "member_id")
private Long memberId;
@Column(length = 20) // VARCHAR(20)
private String name;
@Column(name = "team_id")
private Long teamId;
}
Hibernate: create sequence member_seq_id start with 1 increment by 50
Hibernate: create table Member (member_id number(19,0) not null, name varchar2(20), team_id number(19,0), primary key (member_id))
🔵 member_seq_gen이라는 SequenceGenerator(시퀀스 생성자) 를 통해 member_seq_id라는 sequence 생성
🚩 persistence.xml
필수 설정 조건
<property name="hibernate.id.new_generator_mappings" value="false"/>
Author And Source
이 문제에 관하여([JPA] Annotations - Sequence), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@henrynoowah/JPA-Annotations-Sequence저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)