๐Ÿ˜€
Hyune's Wiki
  • Welcome
  • Article
    • Link
  • Mentor & Code Reviewer
    • ์ง„ํ–‰ํ•˜๊ธฐ์— ์•ž์„œ..
    • Code Review History
      • ํ•œ๋ฐฉ ์ฟผ๋ฆฌ vs ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์กฐ๋ฆฝ
      • DB์—์„œ TIMESTAMP์™€ DATETIME ํƒ€์ž…์˜ ์ฐจ์ด
      • Service๋Š” ์–ด๋–ค dto๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ• ๊นŒ?
        • ํ™•์žฅ ์งˆ๋ฌธ
  • Legacy
    • ์‹ค๋ฌด ๊ฒฝํ—˜ & ํŒ
      • Kotlin
        • ํŒŒ์ผ ์กฐ์ž‘ํ•˜๊ธฐ
      • Infra
        • Lightsail
          • ์ธ์Šคํ„ด์Šค ๊ตฌ์„ฑ ์˜ˆ์ œ
        • ๊ณต์ธ ip ํ™•์ธํ•˜๊ธฐ
      • Database
        • INSERT INTO SELECT SHARED LOCK(row LOCK)
      • API Document
        • OpenAPI (Swagger 3.0)
          • ์ •์  ๋ฌธ์„œ ๋‚ด๋ณด๋‚ด๊ธฐ
      • Side Project
        • Codesquad
      • ETC
        • HTTP Request ์ถ”์ ํ•˜๊ธฐ with HAR File
    • Study
      • Language
        • Java
          • Copy
          • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
          • Garbage Collection
          • ์ž๋ฃŒ๊ตฌ์กฐ
          • Java 17
        • Kotlin
          • Coroutine
      • Framework & Library
        • Spring
          • Spring Security
          • @Component vs @Configuration
        • JPA
          • show-sql ์„ค์ •์˜ ๋‹จ์ 
          • @GeneratedValue strategy
          • Entity์˜ field type
        • Logback
          • ๊ธฐ๋ณธ ์„ค์ •
        • Monitoring
          • VisualVM
            • ์„ค์น˜
            • ๋ฌธ์ž์—ด ์ƒ์„ฑ์œผ๋กœ ํ…Œ์ŠคํŠธ
          • nGrinder
      • Database
        • MySQL
          • SQL ๋ฌธ ์ˆ˜ํ–‰ ์ ˆ์ฐจ
          • ํŠธ๋žœ์žญ์…˜๊ณผ ์ž ๊ธˆ
          • ์ธ๋ฑ์Šค
      • Infra
        • AWS
          • S3
            • ์šฉ์–ด
            • Amazon SDK 1.x with Spring
          • DynamoDB
            • Get vs Query vs Scan
        • Docker & Kubernetes
      • Computer Science
        • OS
          • Process vs Thread
          • Process
        • Web
          • HTTP
            • HTTP vs HTTPS
            • HTTP ๊ตฌ์„ฑ
            • HTTP ๊ทธ์™ธ
          • REST API
            • GET ๋ฉ”์„œ๋“œ์— payload๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š”๊ฐ€?
            • ํŠน์ • ๋ชฉ์ ์˜ API๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ• ๊นŒ?
          • TCP / UDP
          • ์ธํ„ฐ๋„ท์˜ ์ž‘๋™ ์›๋ฆฌ
          • OAuth 2.0
        • Design Pattern
          • Builder Pattern
        • MSA
        • DDD
      • Test
        • Test Doule
      • Book & Online Class
        • ํ•œ ๋ฒˆ์— ๋๋‚ด๋Š” Spring ์™„.์ „.ํŒ ์ดˆ๊ฒฉ์ฐจ ํŒจํ‚ค์ง€ Online
          • AOP, Aspect Oriented Programming
          • Data Binding
          • IoC(Inversion of Control), DI(Dependency Injection)
          • Null Safety
          • Spring Resource
          • Spring Boot ๋ฒ„์ „๋ณ„ ๋ณ€ํ™”
          • SpEL, Spring Expression Language
          • Validation
        • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” 3ํŒ
          • 2์žฅ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด
            • ์•„์ดํ…œ 1. ์ƒ์„ฑ์ž ๋Œ€์‹  ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณ ๋ คํ•˜๋ผ
            • ์•„์ดํ…œ 2. ์ƒ์„ฑ์ž์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด ๋นŒ๋”๋ฅผ ๊ณ ๋ คํ•˜๋ผ
            • ์•„์ดํ…œ 3. private ์ƒ์„ฑ์ž๋‚˜ ์—ด๊ฑฐ ํƒ€์ž…์œผ๋กœ ์‹ฑ๊ธ€ํ„ด์ž„์„ ๋ณด์ฆํ•˜๋ผ
            • ์•„์ดํ…œ 4. ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ๋ง‰์œผ๋ ค๊ฑฐ๋“  private ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
            • ์•„์ดํ…œ 5. ์ž์›์„ ์ง์ ‘ ๋ช…์‹œํ•˜์ง€ ๋ง๊ณ  ์˜์กด ๊ฐ์ฒด ์ฃผ์ž…์„ ์‚ฌ์šฉํ•˜๋ผ
            • ์•„์ดํ…œ 7. ๋‹ค ์“ด ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•˜๋ผ
          • 3์žฅ ๋ชจ๋“  ๊ฐ์ฒด์˜ ๊ณตํ†ต ๋ฉ”์„œ๋“œ
            • ์•„์ดํ…œ 11. equals๋ฅผ ์žฌ์ •์˜ํ•˜๋ ค๊ฑฐ๋“  hashCode๋„ ์žฌ์ •์˜ํ•˜๋ผ
            • ์•„์ดํ…œ 12. toString์„ ํ•ญ์ƒ ์žฌ์ •์˜ํ•˜๋ผ
            • ์•„์ดํ…œ 14. Comparable์„ ๊ตฌํ˜„ํ• ์ง€ ๊ณ ๋ คํ•˜๋ผ
          • 4์žฅ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค
      • Webinar
        • ์š”์ฆ˜ ํž™ํ•œ ์Šคํƒ€ํŠธ์—…์˜ DBDB DEEPํ•œ ์ด์•ผ๊ธฐ
Powered by GitBook
On this page
  • GenerationType.AUTO
  • GenerationType.IDENTITY
  • GenerationType.SEQUENCE
  • GenerationType.TABLE
  • SpringBoot 1.5.x์™€ 2.0.x์˜ ์ฐจ์ด

Was this helpful?

Edit on GitHub
  1. Legacy
  2. Study
  3. Framework & Library
  4. JPA

@GeneratedValue strategy

entity identifier๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ „๋žต์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

GenerationType.AUTO

  • ์‹๋ณ„์ž ์ƒ์„ฑ์‹œ JPA ๊ตฌํ˜„์ฒด์˜ ๊ธฐ๋ณธ ์ „๋žต์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

  • Spring Boot 2.x์˜ JPA ๊ตฌํ˜„์ฒด์ธ Hibernate 5.0 ๊ธฐ์ค€

    • MySQL์€ GenerationType.TABLE ์ „๋žต์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

GenerationType.IDENTITY

  • ์‹๋ณ„์ž ์ƒ์„ฑ์„ DBMS์— ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค.

    • AutoIncrement๋ฅผ ์ง€์›ํ•˜๋Š” MySQL, PostgreSQL, SQL Server, DB2์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

GenerationType.SEQUENCE

  • ์‹๋ณ„์ž ์ƒ์„ฑ์‹œ DB Sequence๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • Sequence๋ฅผ ์ง€์›ํ•˜๋Š” DBMS์ธ Oracle, PostgreSQL, DB2, H2 DB์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

GenerationType.TABLE

  • ์‹๋ณ„์ž ์ƒ์„ฑ์‹œ ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • DB Sequence๋ฅผ ํ‰๋‚ด๋‚ธ ๋ฐฉ์‹์œผ๋กœ ๋ณ„๋„์˜ table์„ ํ™œ์šฉํ•˜๊ธฐ์— ์ถ”๊ฐ€์ ์ธ DB ์ปค๋„ฅ์…˜์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    • ๋‚˜์•„๊ฐ€ ๋ถ€์ •ํ•ฉ์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์–ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

SpringBoot 1.5.x์™€ 2.0.x์˜ ์ฐจ์ด

์‹๋ณ„์ž ์ƒ์„ฑ ์ „๋žต์ด GenerationType.IDENTITY์—์„œ GenerationType.TABLE์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ด์ € ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์—ˆ๊ฒ ์ง€๋งŒ, ์ œ๊ฐ€ ์ผํ•˜๋Š” ํ™˜๊ฒฝ์€ ์ด๋ฏธ ๋‹ค 2.5.x ์˜€๊ธฐ ๋•Œ๋ฌธ์— ์ง€์‹์œผ๋กœ๋งŒ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • Spring Boot 2.x์˜ JPA ๊ตฌํ˜„์ฒด์ธ Hibernate 5.0 ๊ธฐ์ค€, MySQL์€ GenerationType.TABLE ์ „๋žต์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

  • Hibernate์˜ ID ์ƒ์„ฑ ์ „๋žต์„ ๋”ฐ๋ผ ๊ฐˆ์ง€ ๋ง์ง€ ๊ฒฐ์ •ํ•˜๋Š” useNewIdGeneratorMappings ํ”„๋กœํผํ‹ฐ๊ฐ€ 1.5.x ๋ฒ„์ „์˜ false์—์„œ 2.0.x ์—๋Š” true๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ฆ‰ ์‹๋ณ„์ž ์ƒ์„ฑ ์ „๋žต์ด JPA ๊ตฌํ˜„์ฒด์— ์ข…์†์ ์ด๊ฒŒ ์„ค์ •์ด ๋ฐ”๋€Œ๋ฉด์„œ GenerationType.TABLE์ด ์„ ํƒ ๋ฉ๋‹ˆ๋‹ค.

Previousshow-sql ์„ค์ •์˜ ๋‹จ์ NextEntity์˜ field type

Last updated 3 years ago

Was this helpful?

Hibernate ORM 5.2.18.Final User Guide
Logo
(JPA) JPA @Id GenerationType.AUTO, IDENTITY ์ฐจ์ด๊ธฐ๋ก์ด ๊ณง ๋ฐœ์ „์ด๋‹ค!
GenerationType.IDENTITY vs GenerationType.SEQUENCE vs GenerationType.AUTONgDeveloper
Why you should never use the TABLE identifier generator with JPA and Hibernate - Vlad MihalceaVlad Mihalcea
Spring Boot Data JPA 2.0 ์—์„œ id Auto_increment ๋ฌธ์ œ ํ•ด๊ฒฐ๊ธฐ์–ต๋ณด๋‹จ ๊ธฐ๋ก์„
Logo
Logo
Logo
Logo