๐ง @Id ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๊ธฐ๋ณธ ํค(PK)์ ๊ฐ์ฒด์ ํ๋๋ฅผ ๋งคํ์์ผ์ฃผ๋ ์ด๋
ธํ
์ด์
์
๋๋ค. ์ ์ฉ ๊ฐ๋ฅ ํ์
์๋ฐ ๊ธฐ๋ณธํ (int, long, ...) ์๋ฐ ๋ํผํ (Integer, Long, ...) String Date (java.util) Date (java.sql) BigDecimal BigInteger @Id๋ง ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํค๋ฅผ ์ง์ ํ ๋นํด ์ฃผ์ด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ํค๋ฅผ ์ง์ ํ ๋นํ๋ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ฑํด์ฃผ๋ ๊ฐ์ ์ฌ์ฉํ๋ ค๋ฉด @GeneratedValue๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๐ง @GeneratedValue ๊ธฐ๋ณธ ํค๋ฅผ ์๋ ์์ฑํด์ฃผ๋ ์ด๋
ธํ
์ด์
์
๋๋ค. ์์ฑ์ผ๋ก๋ strategy๊ฐ ์๋๋ฐ, ์ด๋ฅผ ํตํด ์๋ ์์ฑ ์ ๋ต์ ์ง์ ํด ์ค ์ ์์ต๋๋ค. ์ด์ ๋ถํฐ ๊ฐ๊ฐ์ ์ ๋ต๋ค์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค...
SEQUENCE ์ ๋ต, TABLE ์ ๋ต SEQUENCE ์ ๋ต์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ์ค๋ฅผ ์ฌ์ฉํด์ ๊ธฐ๋ณธ ํค๋ฅผ ํ ๋นํด์ฃผ๋ ์ ๋ต์
๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋ ๊ธ์ ์ฐธ๊ณ ํด์ฃผ์ธ์ [JPA] ๊ธฐ๋ณธ ํค(Primary Key)๋งคํ - @Id, @GeneratedValue @Id ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๊ธฐ๋ณธ ํค์ ๋งคํ์์ผ์ฃผ๋ ์ด๋
ธํ
์ด์
์ด๋ค. ์ ์ฉ ๊ฐ๋ฅ ํ์
์๋ฐ ๊ธฐ๋ณธํ (int, long, ...) ์๋ฐ ๋ํผํ (Integer, Long, ...) String Date (java.util) Date (java.sql) BigDecimal BigIn.. ttl-blog.tistory.com SEQUENCE ์ ๋ต์ ์ต์ ํ. - allocationSize SequenceGenerator์ allocationSize์ ๊ธฐ๋ณธ๊ฐ์ 50์
๋..
๐ง ๊ฐ ํ์
์ปฌ๋ ์
๊ฐ ํ์
์ ์ปฌ๋ ์
์ ๋ด์์ ์ฌ์ฉํ ๋, ํด๋น ์ปฌ๋ ์
์ ๊ฐ ํ์
์ปฌ๋ ์
์ด๋ผ ํฉ๋๋ค. (@OneToMany ์ฒ๋ผ ์ํฐํฐ๋ฅผ ์ปฌ๋ ์
์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋, Integer, String, ์๋ฒ ๋๋ ํ์
๊ฐ์ ๊ฐ ํ์
์ ์ปฌ๋ ์
์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค.) ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ปฌ๋ ์
์ ๋ด์ ์ ์๋ ๊ตฌ์กฐ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์๋ ๋ณ๋์ ํ
์ด๋ธ์ ๋ง๋ค์ด์ ์ ์ฅํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฐ ํ์
์ปฌ๋ ์
์ ๊ฐ๋
์ ์ผ๋ก ๋ณด๋ฉด 1๋ N ๊ด๊ณ์
๋๋ค. (๊ทธ๋ฆฌ๊ณ ๊ฐ ํ์
์ ์ ์ฅํ๋ ํ
์ด๋ธ์ ๊ฐ ํ์
์ ์์ ํ ์ํฐํฐ์ ๊ธฐ๋ณธ ํค์ ๋ชจ๋ ๊ฐ ํ์
ํ๋๋ฅผ ๋ฌถ์ด์ PK๋ก ์ฌ์ฉํ๋ฉฐ, ์ํฐํฐ์ ๊ธฐ๋ณธ ํค๋ฅผ PK๊ฒธ FK๋ก ์ฌ์ฉํฉ๋๋ค.) ๐ง @ElementCollection ๊ฐ ํ์
์ปฌ๋ ์
์ ๋งคํํ ๋ ์ฌ์ฉํฉ๋๋ค. RD..
@Access JPA๊ฐ ์ํฐํฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๋ฐฉ์์ ์ง์ ํฉ๋๋ค. ์ ๊ทผํ๋ ๋ฐฉ์์๋ ๋๊ฐ์ง ๋ฐฉ์์ด ์๋๋ฐ ํ๋ํ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ํ๋ ์ ๊ทผ : AccessType.FILED ํ๋์ ์ง์ ์ ๊ทผํฉ๋๋ค. ํ๋ ์ ๊ทผ ๊ถํ์ด private์ด์ด๋ ์ ๊ทผํ ์ ์์ต๋๋ค. ํ๋กํผํฐ ์ ๊ทผ : AccessType.PROPERTY ์ ๊ทผ์(getter)๋ฅผ ์ฌ์ฉํฉ๋๋ค ์ฌ์ฉ @Entity @Access(AccessType.FIELD) public class Member { @Id private String id; } @Access๋ฅผ ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ @Access๋ฅผ ์ค์ ํ์ง ์์ผ๋ฉด @Id์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๊ทผ ๋ฐฉ์์ด ์ค์ ๋ฉ๋๋ค. @Id๊ฐ ํ๋์ ๋ฌ๋ ค์์ผ๋ฉด ํ๋ ์ ๊ทผ, Getter์ ๋ฌ๋ ค์์ผ๋ฉด ํ๋กํผํฐ ์ ๊ทผ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค...
@Transient ํด๋น ํ๋๋ฅผ ์์ ๋์์์ ์ ์ธ์ํฌ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ์ง ์๊ณ ์กฐํํ์ง๋ ์์ต๋๋ค. ๊ฐ์ฒด์ ์์๋ก ์ด๋ค ๊ฐ์ ๋ณด๊ดํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. @Entity public class Member { @Id private String id; private Stirng username; private Stirng password; @Trasient private Stirng checkPassword; } ๐ Reference ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์ JPA๋ฅผ ์ฒ์ ์ ํ๊ฑฐ๋, ์ค๋ฌด์์ JPA๋ฅผ ์ฌ์ฉํ์ง๋ง ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ์กฑํ์ ๋ถ๋ค์ด JPA์ ๊ธฐ๋ณธ ์ด๋ก ์ ํํํ๊ฒ ํ์ตํด์ ์ด๋ณด์๋ ์ค๋ฌด์์ ์์ ์๊ฒ JPA๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค., ๋ณธ..
@Basic ์๋ฐ์ ๊ธฐ๋ณธ ํ์
์ ๋ช
์์ ์ผ๋ก ๋งคํํด์ฃผ๋? ์ ๋
ธํ
์ด์
์
๋๋ค. ๊ฑฐ์ ์ฌ์ฉํ ์ผ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ค๋ช
The simplest type of mapping to a database column. The Basic annotation can be applied to a persistent property or instance variable of any of the following types: Java primitive types, wrappers of the primitive types, String, java.math.BigInteger, java.math.BigDecimal, java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Ti..
@Lob ๋ฐ์ดํฐ๋ฒ ์ด์ค์ BLOB, CLOB ํ์
๊ณผ ๋งคํํฉ๋๋ค. @Lob์๋ ์ง์ ํ ์ ์๋ ์์ฑ์ด ์์ต๋๋ค. ๋์ ์ ๋งคํํ๋ ํ๋ ํ์
์ด ๋ฌธ์๋ฉด CLOB์ด๊ณ , ๋๋จธ์ง๋ BLOB์ผ๋ก ๋งคํ๋ฉ๋๋ค. (Lob์ Large Object์ ์ค์๋ง์
๋๋ค) CLOB : ๋ฌธ์ ๋ํ ๊ฐ์ฒด, BLOB : ์ด์ง ๋ํ ๊ฐ์ฒด (์ด๋ฏธ์ง, ๋์์ ๋ฑ๋ฑ) @Lob ์ฃผ์์ @Basic ํน์ @ElementCollection ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. Mysql์ TEXT ๋งคํํ๋ ๋ฒ @Column(columnDefinition = "TEXT") Reference ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์ JPA๋ฅผ ์ฒ์ ์ ํ๊ฑฐ๋, ์ค๋ฌด์์ JPA๋ฅผ ์ฌ์ฉํ์ง๋ง ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ์กฑํ์ ๋ถ๋ค์ด JPA์ ๊ธฐ๋ณธ ์ด๋ก ์ ํ..
์์์ ์์ ์๋ฐ 8๋ถํฐ LocalDate, LocalDateTime์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ด๋ฒ๋ค์ดํธ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๋ค๋ฉด, @Temporal ์ด๋
ธํ์ด์
์ ์๋ตํ์ฌ๋ LocalDate์ LocalDateTime์ ์ฌ์ฉํ ์ ์์ต๋๋ค. @Entity public class Member{ @Id private Long id; private LocalDateTime createdDate; } @Temporal ๋ ์ง ํ์
(java.util.Date, java.util.Calendar)์ ๋งคํํ ๋ ์ฌ์ฉํฉ๋๋ค. ์๋ฐ์ Date ํ์
์๋ ๋
์์ผ ์๋ถ์ด๊ฐ ์์ง๋ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ date(๋ ์ง), time(์๊ฐ), timestamp(๋ ์ง์ ์๊ฐ)๋ผ๋ ์ธ ๊ฐ์ง ํ์
์ด ๋ณ๋๋ก ์กด์ฌํฉ๋๋ค. @Temporal์ ์๋ตํ..