๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
@SequenceGenerator(
name = "BOARD_SEQ_GENERATOR",
allocationSize = 50
)
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "BOARD_SEQ_GENERATOR")
@Column(name = "MEMBER_ID")
private Long id;
}
์ดํ ๋ค์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
Member member = new Member();
em.persist(member);
Member member2 = new Member();
em.persist(member2);
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ด ์ํ์ค ํธ์ถ์ด 2๋ฒ ์ด๋ฃจ์ด์ง๋ค.
2๋ฒ ํธ์ถ๋๋ ์ด์ ๊ฐ ๋ญ๊ฐ์?
์ฒ์ ํธ์ถํ๋ฉด DB SEQUENCE ๊ฐ์ด 1์ด ๋ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ๋ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ๊ธฐ ์ํด allocateSize๋ฅผ 50์ผ๋ก ์ค์ ํ์์ต๋๋ค.
๋ฐ๋ผ์ 50๊ฐ์ฉ ์ฌ์ฉํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ 50๊ฐ๋ฅผ ์ค์ ํด์ผ ํ๋๋ฐ, DB์ ์ํ์ค ๊ฐ์ด 1์ด๋ผ, ํ๋ฒ ๋ ํธ์ถํด์ 51๋ก ๋ง๋ค์ด์ค ํ, ๋ฉ๋ชจ๋ฆฌ์์ 50๊ฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
DB SEQ = 1 | 1 //๋ฉ๋ชจ๋ฆฌ์ 50์ ์ฌ์ฉํ๊ธฐ ์ํด ํ๋ฒ ๋ ํธ์ถ (1, 51)
DB SEQ = 51 | 2
DB SEQ = 51 | 3
...
๐ Reference
์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์
JPA๋ฅผ ์ฒ์ ์ ํ๊ฑฐ๋, ์ค๋ฌด์์ JPA๋ฅผ ์ฌ์ฉํ์ง๋ง ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ์กฑํ์ ๋ถ๋ค์ด JPA์ ๊ธฐ๋ณธ ์ด๋ก ์ ํํํ๊ฒ ํ์ตํด์ ์ด๋ณด์๋ ์ค๋ฌด์์ ์์ ์๊ฒ JPA๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค., ๋ณธ ๊ฐ์๋ ์๋ฐ ๋ฐฑ์
www.inflearn.com
[JPA] ์๋ณ์ ํ ๋น SEQUENCE(์ํ์ค) ์ฌ์ฉ ์ ๋ต
JPA ์๋ณ์ JPA๋ ์ํฐํฐ๋ค์ ๋ ผ๋ฆฌ์ ์ธ ๊ณต๊ฐ์ธ ์์์ฑ ์ปจํ ์คํธ์์ ๊ด๋ฆฌํ๋๋ฐ, ์ํฐํฐ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ์๋ณ์๊ฐ ํ์ํฉ๋๋ค. ์๋ณ์๊ฐ ๋๋ ํ๋๋ ์ํฐํฐ ํด๋์ค์ @Id ์ ๋ ธํ ์ด์ ์ ํตํด ์ง
dololak.tistory.com
'๐๏ธ Spring > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] ์ฐ๊ด๊ด๊ณ ํธ์ ๋ฉ์๋ ์์ฑํ๊ธฐ (0) | 2021.12.14 |
---|---|
[JPA] - @JoinColumn๊ณผ ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ (mappedBy) (2) | 2021.12.14 |
[JPA] ์๋ณ์(๊ธฐ๋ณธ ํค) ์ ํ ์ ๋ต (0) | 2021.12.14 |
[JPA] ๊ธฐ๋ณธ ํค(Primary Key)๋งคํ - @Id, @GeneratedValue (0) | 2021.12.14 |
[JPA] ๊ธฐ๋ณธ ํค ๋งคํ - SEQUENCE, TABLE ์ ๋ต์ ์ต์ ํ (0) | 2021.12.14 |