๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŒท Spring/๊ฐœ๋…

[Spring] @Id์™€ @GeneratedValue์ด๋ž€?

by ._.sori 2025. 9. 8.

 

 

๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ/์กฐํšŒ ํด๋ž˜์Šค์—์„œ
@Id์™€ @GeneratedValue๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.
๊ณผ์—ฐ @Id์™€ @GeneratedValue๊ฐ€ ๋ญ˜๊นŒ?

 

 

 

 

@Id

  • @Id๋ฅผ ๋ถ™์—ฌ, JPA์—๊ฒŒ ํ•ด๋‹น ํ•„๋“œ๊ฐ€ ์ด ํ…Œ์ด๋ธ”์—์„œ ๊ธฐ๋ณธ ํ‚ค(Primary Key)๋ฅผ ์•Œ๋ฆฐ๋‹ค.
  • ํ•ด๋‹น ํ•„๋“œ๋Š” ๊ฐ์ฒด์˜ ๊ณ ์œ ๋ฒˆํ˜ธ๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋œ๋‹ค.
  • JPA๋Š” ๊ธฐ๋ณธ ํ‚ค๋ฅผ ํ†ตํ•ด ์ €์žฅ/์กฐํšŒ/์ˆ˜์ •/์‚ญ์ œํ•  ๋•Œ ์ •ํ™•ํžˆ ์–ด๋–ค ํ–‰(row)์ธ์ง€ ๊ตฌ๋ณ„ํ•œ๋‹ค.

 

 

 

@GeneratedValue

  • @Id ํ•„๋“œ ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์ง€ JPA์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค.
  • ๊ธฐ๋ณธํ‚ค(PK)๋ฅผ ์ง์ ‘ ์„ธํŒ…ํ•˜์ง€ ์•Š๊ณ , ํ”„๋กœ๋ฐ”์ด๋”๊ฐ€ ๋งŒ๋“ค๋„๋ก ํ•œ๋‹ค.
  • @GeneratedValue๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  @Id ์–ดํ† ๋„ค์ด์…˜๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ง์ ‘ ํ• ๋‹นํ•ด์•ผํ•œ๋‹ค.
  • ๊ธฐ๋ณธํ‚ค(PK) ๊ฐ’์— ๋Œ€ํ•œ ์ƒ์„ฑ ์ „๋žต์„ ์ œ๊ณตํ•œ๋‹ค.

 

 

Q. ํ”„๋กœ๋ฐ”์ด๋”๋ž€?

A. JPA ํ‘œ์ค€์„ ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์Šคํ”„๋ง์—์„œ ํ”„๋กœ๋ฐ”์ด๋” ์˜ˆ์‹œ๋กœ ํ•˜๋ฒ„๋„ค์ดํŠธ(Hibervate)๊ฐ€ ์žˆ๋‹ค. ์ข€ ๋” ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด๋ณด๋ฉด JPA๋Š” ๊ทœ์น™์ด๋ผ๊ณ  ๋ณด๋ฉด ๋˜๊ณ , ๊ทธ ๊ทœ์น™์„ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ Hibernate๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

 

Q. @GeneratedValue๋Š” @Id ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Œ๋ ค์ค€๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์ž๋™์œผ๋กœ ๋งŒ๋“ ๋‹ค๋Š”๊ฒŒ ๋ฌด์Šจ ๋ง์ผ๊นŒ?

A. ๋งŒ์•ฝ @GeneratedValue๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, member.setId(1L); ์ด๋Ÿฐ์‹์œผ๋กœ ์ง์ ‘ ๊ฐ’์„ ์ˆ˜๋™์ ์œผ๋กœ ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ @GeneratedValue๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ €์žฅ ์‹œ์ ์—์„œ id๊ฐ€ ์ž๋™์œผ๋กœ ์ฑ„์›Œ์ง€๊ฒŒ ๋œ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ์ผ์ด ๊ด€๋ฆฌํ•˜๋ฉด ์‹ค์ˆ˜๊ฐ€ ์ƒ๊ธฐ๊ฑฐ๋‚˜, ๋™์‹œ์— ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ฒˆํ˜ธ๊ฐ€ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— @GeneratedValue๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ํŽธ๋ฆฌํ•˜๋‹ค.

 

 

 

 


 

 

 

 

@GeneratedValue์˜ ์ „๋žต

  • IDENTITY - @GeneratedValue(strategy = GenerationType.IDENTITY)
    : ๊ธฐ๋ณธํ‚ค ์ƒ์„ฑ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๊ฒŒ ์œ„์ž„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ id ๊ฐ’์„ ๋”ฐ๋กœ ํ• ๋‹นํ•˜์ง€ ์•Š์•„๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ž๋™์œผ๋กœ AUTO_INCREMENT๋ฅผ ํ•˜์—ฌ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. ์ฃผ๋กœ MySQL, PostgreSQL, SQL Server, DB2์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.
  • SEQUENCE - @GeneratedValue(strategy = GenerationType.SEQUENCE)
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ Sequence Object๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ž๋™์œผ๋กœ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์‹œํ€€์Šค ๊ฐ์ฒด์—์„œ ๋ฒˆํ˜ธ๋ฅผ ๋ฝ‘์•„ ์“ฐ๋Š”๋ฐ, ์ด ์‹œํ€€์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ Id ๊ฐ’์„ ์ฆ๊ฐ€ ์‹œํ‚จ๋‹ค. INSERT ์ „์— ๊ธฐ๋ณธํ‚ค๋ฅผ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์žˆ์–ด ๋ฐฐ์น˜ ์‚ฝ์ž…์— ์ข‹๋‹ค. ๊ทธ๋ฆฌ๊ณ  sequenceName์œผ๋กœ ์‹œํ€€์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ allocationSize๋กœ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•  ์‹œํ€€์Šค ๋ฉ์–ด๋ฆฌ ์‚ฌ์ด์ฆˆ๋ฅผ ์ •ํ•ด์„œ ์ตœ์ ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ๋กœ ์˜ค๋ผํด, PostgreSQL, DB2, H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณดํ†ต @SequenceGenerator์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค.
  • TABLE - @GeneratedValue(strategy = GenerationType.TABLE)
    :
    ํ‚ค ์ƒ์„ฑ ์ „์šฉ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œํ€€์Šค๋ฅผ ํ‰๋‚ด๋‚ด๋Š” ์ „๋žต์œผ๋กœ, ์ „์šฉ ํ…Œ์ด๋ธ”์— ๋งˆ์ง€๋ง‰ ID ๊ฐ’์„ ์ €์žฅํ•ด ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ์‹์ด๋‹ค. @TableGenerator์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•œ๋‹ค. ๋ชจ๋“  DB์—์„œ ๋™์ž‘ํ•˜์ง€๋งŒ, ๋А๋ฆฌ๊ธฐ๋„ ํ•˜๊ณ  ์„ฑ๋Šฅ์ ์ธ ์†ํ•ด๊ฐ€ ์žˆ์–ด ๋ณดํ†ต ์ž˜ ์“ฐ์ง€๋Š” ์•Š๋Š”๋‹ค.
  • AUTO - @GeneratedValue(strategy = GenerationType.AUTO)
    : hibernate.dialect์— ์„ค์ •๋œ DB ๋ฐฉ์–ธ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ IDENTITY, SEQUENCE, TABLE ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•œ๋‹ค. ์ฒ˜์Œ์—” ํŽธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, DB๋ฅผ ๋ฐ”๊ฟ”์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ค ๋ฐฉ์‹์ด ์“ฐ์˜€๋Š”์ง€ ๋ชจ๋ฅด๋ฉด ์ด์‹์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์–ด ์œ ์˜ํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•˜๋ฒ„๋„ค์ดํŠธ๋ฅผ ๋ฌด์กฐ๊ฑด ๋ฏฟ์–ด์„  ์•ˆ๋œ๋‹ค. ์ง์ ‘ DBMS์— ๋งž๋Š” ์ „๋žต์„ ์ง€์ •ํ•˜๋Š”๊ฒŒ ๋” ์ข‹๋‹ค.
  • UUID - @org.hibernate.annotations.UuidGenerator
    :
    id๊ฐ€ UUID์ผ ๋•Œ UUID Generator๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์—์„œ UUID ๊ธฐ๋ฐ˜ ์ƒ์„ฑ์ด ์ง€์›๋˜๋Š”๋ฐ, ๋„คํŠธ์›Œํฌ ๋ถ„์‚ฐํ™˜๊ฒฝ์—์„œ ์ถฉ๋Œ ์œ„ํ—˜์ด ๋‚ฎ๋‹ค. IDENTITY๋Š” INSERT๋ฅผ ๋จผ์ € ํ•ด์•ผ DB๊ฐ€ ๋ฒˆํ˜ธ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  SEQUENCE๋Š” INSERT ์ „์— nextval์„ ๋ฐ›์œผ๋ ค๊ณ  DB ํ˜ธ์ถœ 1ํšŒ๊ฐ€ ๊ผญ ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋Ÿฐ๋ฐ UUID๋Š” ๋‹ค์Œ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•„์•ผํ•˜๋Š” ์ถ”๊ฐ€ ์š”์ฒญ์ด ํ•„์š” ์—†์ด, ๊ธฐ๋ณธํ‚ค๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๊ณ  INSERTํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์ด ์ค„์–ด๋“ ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธ๋ฑ์Šค ํ˜น์€ ์ •๋ ฌ ์„ฑ๋Šฅ์€ ์ˆซ์ž ๊ธฐ๋ณธํ‚ค๋ณด๋‹ค ๋ถˆ๋ฆฌํ•˜๋‹ค. 

 

์ „๋žต ๋ˆ„๊ฐ€ ๋งŒ๋“œ๋Š”๊ฐ€? ์–ธ์ œ ์ƒ๊ธฐ๋‚˜? ํŠน์ง•
IDENTITY DB๊ฐ€ AUTO_INCREMENT๋กœ INSERT ์งํ›„ ๋ฐฐ์น˜ INSERT ์ตœ์ ํ™”๋Š” ์–ด๋ ค์›€
SEQUENCE DB ์‹œํ€€์Šค๋กœ ๋ฒˆํ˜ธ๋ฅผ ๋ฝ‘์•„์„œ INSERT ์ „์— ๋ฐฐ์น˜์œ ๋ฆฌ, ์„ฑ๋Šฅ ํŠœ๋‹ ์‰ฌ์›€
TABLE ์ „์šฉ ํ…Œ์ด๋ธ”์—์„œ ์ฆ๊ฐ€๊ฐ’ ๊ด€๋ฆฌ ๋ณดํ†ต INSERT ์ „/์ค‘ ์ž˜ ์•ˆ ์”€.
UUID ํ”„๋กœ๋ฐ”์ด๋”๋‚˜ ์•ฑ์ด UUID ์ƒ์„ฑ INSERT ์ „์— ๋ถ„์‚ฐํ™˜๊ฒฝ์— ์œ ๋ฆฌ

 

 

 

 


 

 

 

@Id์™€ @GeneratedValue์˜ ์ฝ”๋“œ ์˜ˆ์‹œ(GPT)

 

  • IDENTITY
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

 

  • SEQUENCE
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "member_seq_gen")
@SequenceGenerator(name = "member_seq_gen", sequenceName = "member_seq", allocationSize = 50)
private Long id;

 

  • TABLE
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "member_tbl_gen")
@TableGenerator(name = "member_tbl_gen", table = "id_gen", pkColumnName = "gen_name",
                valueColumnName = "gen_val", pkColumnValue = "member_id", allocationSize = 10)
private Long id;

 

  • AUTO
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

 

  • UUID
@Id
@GeneratedValue
@org.hibernate.annotations.UuidGenerator
private UUID id;

 

 

 

 


 

 

 

๋‚ด๊ฐ€ ์ง์ ‘ ์‚ฌ์šฉํ–ˆ๋˜ ์ฝ”๋“œ ์˜ˆ์‹œ_(H2DataBase๋ฅผ IDENTITY๋กœ ์‚ฌ์šฉํ•ด ๋ณธ ๊ฒƒ์— ๋Œ€ํ•˜์—ฌ...)

@Entity
@Getter
@Setter
public class Member {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String userId;
    private String pw;
    private String tel;
    private String birth;
    private String email;
}
IDENTITY๋Š” MySQL, PostgreSQL, SQL Server, DB2์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ... ๋‚˜๋Š” H2DataBase๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. H2DataBase๋Š” SEQUENCE ์ „๋žต์— ๋งž๋‹ค๊ณ  ์จ์žˆ๋Š”๋ฐ, ์ด ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๋˜ ๋‹น์‹œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์‹œํ€€์Šค ํƒ€์ž… ์„ค๋ช…์ด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์„œ ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋ฐฉ์‹์ธ IDENTITY๋ฅผ ๊ณจ๋ž๋˜ ๊ฒƒ ๊ฐ™๋‹ค.(๋‚ด ์œ„์ฃผ๋กœ ๋Œ์•„๊ฐ€๋Š” ํ”„๋กœ์ ํŠธ... ์˜ค๋Š˜ @GeneratedValue์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ๋‚˜๋‹ˆ๊นŒ ๊ทธ๋ ‡๊ฒŒ ์ง„ํ–‰ํ–ˆ๋˜๊ฒŒ ์กฐ๊ธˆ ๋ถ€๋„๋Ÿฝ๋‹ค.) ์•„๋งˆ ๋ฌธ์ œ ์—†์ด ๋Œ์•„๊ฐ„ ์ด์œ ๋Š” ๋ณ„๋‹ค๋ฅธ ๊ธฐ๋Šฅ ์—†๋Š” ์—ฐ์Šต ํ”„๋กœ์ ํŠธ์˜€์–ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ƒฅ ๊ธฐ๋ณธ์ ์ธ ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜€๊ธฐ์— ์ €์žฅ ๋ง๊ณ ๋Š” DB๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋”ฑํžˆ ์—†๋‹ค.

๊ทธ๋ž˜๋„ ํ˜น์‹œ ๋ชจ๋ฅด๋‹ˆ GPT์—๊ฒŒ ๋ฌผ์–ด๋ดค๋‹ค.

ํ™•์‹คํžˆ ํ…Œ์ŠคํŠธ ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๋“ฏ ํ•˜๋‹ค. ๋‹ค๋งŒ ๋Œ€๋Ÿ‰ ์‚ฝ์ž…(batch) ์ตœ์ ํ™”๊ฐ€ ์ œํ•œ๋  ์ˆ˜ ์žˆ๊ณ  persist( ) ์‹œ์ ์— ์ฆ‰์‹œ flush๊ฐ€ ์„ž์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ ์™ธ์—๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋งŒ๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์คฌ๋Š”๋ฐ, ๊ทธ๋ƒฅ ๋งž๋Š” ์ „๋žต ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

 

 


 

 

 

์•„๋ž˜์— ์ถœ์ฒ˜๋ฅผ ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ธ”๋กœ๊ทธ์—” ์ œ๊ฐ€ ์ตœ๋Œ€ํ•œ ์ดํ•ดํ•œ ๋‚ด์šฉ๊นŒ์ง€๋งŒ ์ ๋Š”๊ฑฐ๋ผ
์ถœ์ฒ˜์— ๋“ค์–ด๊ฐ€์‹œ๋ฉด ๋” ๋งŽ์€ ๋‚ด์šฉ์ด ์žˆ์–ด ๊ณต๋ถ€ํ•˜์‹œ๋Š”๋ฐ ๋„์›€๋˜์‹ค๊ฒ๋‹ˆ๋‹ค.

 

๐Ÿชฝ

ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”

 

 


 

 

 

- @Id์™€ @GeneratedValue์— ๋Œ€ํ•˜์—ฌ

 

JPA ๊ธฐ๋ณธํ‚ค ์ƒ์„ฑ ์ „๋žต, @GeneratedValue ์‚ฌ์šฉ์‹œ ์ฃผ์˜์ 

JPA๋กœ ํ…Œ์ด๋ธ”๊ณผ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋งคํ•‘ํ•  ๋•Œ, ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•  ํ•„๋“œ ์œ„์— @Id ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ ํ…Œ์ด๋ธ”์˜ Primary Key์™€ ์—ฐ๊ฒฐ ์‹œ์ผœ์ค˜์•ผํ•œ๋‹ค. ์ด ๋•Œ, ์ปฌ๋Ÿผ ๋ช…์„ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ด€๋ก€์— ๋”ฐ๋ผ ๋งคํ•‘๋˜๋Š”

devcamus.tistory.com

 

 

- @Id์™€ @GeneratedValue์— ๋Œ€ํ•˜์—ฌ

 

@Id / @GeneratedValue์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

@Id / @GeneratedValue์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž PK๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด @Id ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ƒ์„ฑ ์ „๋žต์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด @GeneratedValue ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. @Id package javax

rutgo-letsgo.tistory.com