Entity์˜ field type

ID

The primary key, or the property or field of a composite primary key, must be one of the following Java language types: - Java primitive types - Java primitive wrapper type - sjava.lang.String - java.util.Date (the temporal type should be DATE) - java.sql.Date - java.math.BigDecimal - java.math.BigInteger https://docs.oracle.com/javaee/6/tutorial/doc/bnbqa.html#bnbqf

  • JPA ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด primitive types ๋„ ํ—ˆ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ

We recommend that you declare consistently-named identifier attributes on persistent classes and that you use a nullable (i.e., non-primitive) type. https://docs.jboss.org/hibernate/orm/5.3/userguide/html_single/Hibernate_User_Guide.html#entity-pojo-identifier

  • ์ผ๋ฐ˜์ ์ธ ๊ตฌํ˜„์ฒด์ธ Hibernate์˜ ๋ฌธ์„œ์— ๋ช…์‹œ์ ์œผ๋กœ non-primitive type์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • id๋ฅผ primitive type์œผ๋กœ ํ•˜๋ฉด 0๊ณผ null์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    • primitive type์˜ ๊ธฐ๋ณธ ๊ฐ’์ด 0์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— null์ด ํ—ˆ์šฉ๋˜๋Š” wrapper type์„ ํ™œ์šฉํ•ด์•ผ ์ œ๋Œ€๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Except ID

๋ฐ˜๋ฉด ID๊ฐ€ ์•„๋‹Œ ๊ฐ’์€ ์ œ ํ‰์†Œ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ช…๋ฐฑํ•œ ๊ทผ๊ฑฐ๋ฅผ ์ฐพ๊ธฐ ํž˜๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €์™€ ๋น„์Šทํ•œ ๊ณ ๋ฏผ์„ ํ•œ ์Šคํƒ ์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ์˜ ์งˆ๋ฌธ์„ ์ฐพ์•˜๊ณ  ๊ทธ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ ์ƒ๊ฐ์„ ์ข€ ๋” ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ์˜ null ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. null ๋ฐ์ดํ„ฐ๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ํ˜น์ž๋Š” null ๋ฐ์ดํ„ฐ์˜ ์กด์žฌ ์ž์ฒด๋ฅผ ๋ฌธ์ œ๋กœ ๋งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฒฝํ—˜์ƒ ์‹ค๋ฌด DB์—๋Š” null์ธ ์ปฌ๋Ÿผ์ด ๊ฝค ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค.

  3. ์†Œ์ˆ˜ ํ•„๋“œ์˜ boxing-unboxing์€ ๋ฐฐ์ œํ•ฉ๋‹ˆ๋‹ค.

    • boxing-unboxing ์ด์Šˆ๋Š” ๋ฐ˜๋ณต๋ฌธ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    • ์ปดํ“จํŒ… ๋Šฅ๋ ฅ์ด ์ถฉ๋ถ„ํžˆ ์ €๋ ดํ•ด์ง€๊ณ  ๋†’์•„์กŒ์Šต๋‹ˆ๋‹ค.

  4. ์ฝ”๋”ฉ ์Šคํƒ€์ผ์˜ ์ผ๊ด€์„ฑ์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ์ผ๋ถ€ @Ttransient ํ•„๋“œ์— ๋Œ€ํ•ด์„œ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์€ ์ด์œ ๋กœ ์ €๋Š” Entity์˜ ๋ชจ๋“  ํ•„๋“œ๋ฅผ wrapper type์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

Last updated

Was this helpful?