์ฐ๊ด๊ด๊ณ ํธ์ ๋ฉ์๋๋ฅผ ์์ฑํ ๋, ๋ฌธ์ ๊ฐ ๋๋ ์ํฉ๊ณผ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ค์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฌธ์ ๊ฐ ๋๋ ์ฝ๋ public class Member { private Team team; public void setTeam(Team team){ this.team = team; team.getMembers().add(this); } } ์์ setTeam() ๋ฉ์๋๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด, setTeam(teamA) ์ดํ setTeam(teamB)๋ฅผ ํ๊ฒ ๋๋ฉด teamA์์ ๊ด๊ณ๊ฐ ์ญ์ ๋์ง ์์ ์ฒด ๋จ์์๊ฒ ๋ฉ๋๋ค. ์ฝ๋ ์์ public class Member { private Team team; public void setTeam(Team team){ if(this.t..
@JoinColumn ์ธ๋ ํค๋ฅผ ๋งคํํ ๋ ์ฌ์ฉํฉ๋๋ค. name ์์ฑ์๋ ๋งคํํ ์ธ๋ ํค ์ปฌ๋ผ๋ช
(์ด๋ฆ)์ ์ง์ ํฉ๋๋ค. ์์ฑ ๊ธฐ๋ฅ ๊ธฐ๋ณธ๊ฐ name ๋งคํํ ์ธ๋ ํค ์ปฌ๋ผ๋ช
ํ๋๋ช
_[์ฐธ์กฐํ๋ ํ
์ด๋ธ์ ๊ธฐ๋ณธ ํค ์ปฌ๋ผ๋ช
] referencedColumnName ์ธ๋ ํค๊ฐ ์ฐธ์กฐํ๋ ๋์ ํ
์ด๋ธ์ ์ปฌ๋ผ๋ช
์ฐธ์กฐํ๋ ํ
์ด๋ธ์ ๊ธฐ๋ณธ ํค ์ปฌ๋ผ๋ช
foreignKey (DDL) ์ธ๋ ํค ์ ์ฝ์กฐ๊ฑด์ ์ง์ ์ง์ ํ ๋ ์ฌ์ฉํ๋ฉฐ, ํ
์ด๋ธ์ ์์ฑํ ๋๋ง ์ฌ์ฉํ๋ค. unique nullable insertable updatable columnDefinition table @Column์ ์์ฑ๊ณผ ๋์ผํ๋ค. name๊ณผ referencedColumnName์ ์ฐฉ๊ฐํ์ง ์๋๋ก ์ฃผ์ํ์ name์ ๋จ์ง ๋งคํํ ์ธ๋ ํค์ ์ด๋ฆ, ์ฆ ๋จ์ํ ์ปฌ๋ผ๋ช
์ ..
๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. @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๋ฒ ์ด๋ฃจ์ด์ง๋ค..
DB ๊ธฐ๋ณธ ํค(Primary Key) ์กฐ๊ฑด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ํค(Primary Key)๋ ๋ค์ 3๊ฐ์ง ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํด์ผ ํฉ๋๋ค. null ๊ฐ์ ํ์ฉํ์ง ์์ต๋๋ค. ์ ์ผํด์ผ ํฉ๋๋ค ๋ณํด์๋ ์๋ฉ๋๋ค. ๊ธฐ๋ณธ ํค ์ ํ ์ ๋ต ์์ฐ ํค ๋น์ฆ๋์ค์ ์ผ๋ก ์๋ฏธ๊ฐ ์๋ ํค๋ฅผ ์๋ฏธํฉ๋๋ค. (์: ์ฃผ๋ฏผ๋ฒํธ, ์ ํ๋ฒํธ ๋ฑ) ๋๋ฆฌ ํค ๋น์ฆ๋์ค์ ๊ด๋ จ ์๋ ์์๋ก ๋ง๋ค์ด์ง ํค. (์ : AUTO_INCREMENT, ์ค๋ผํด ์ํ์ค ๋ฑ) ๊ถ์ฅํ๋ ์๋ณ์ ์ ํ ์ ๋ต ์์ฐ ํค๋ณด๋ค๋ ๋๋ฆฌ ํค๋ฅผ ๊ถ์ฅํฉ๋๋ค. ์ฃผ๋ฏผ๋ฑ๋ก ๋ฒํธ๊ฐ์ด ๊ธฐ๋ณธ ํค์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ์์ฐ ํค๋ฅผ ๊ธฐ๋ณธ ํค๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ ์ถฉ๋์ด ๋ค ์ ์์ต๋๋ค.. ๊ทธ๋ฌ๋ ๊ฐ์๊ธฐ ์ ์ฑ
์ ๋ณ๊ฒฝ์ผ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ๋ฏผ๋ฒํธ๋ฅผ ์ ์ฅํ์ง ๋ชปํ๊ฒ ๋ง์๋ฒ๋ฆฐ๋ค๋ฉด ๋ต์ด ์์ด์ง๋๋ค. ๋น์ฆ๋์ค ํ..
๐ง @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์ ๋ฌ๋ ค์์ผ๋ฉด ํ๋กํผํฐ ์ ๊ทผ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค...
'๐๏ธ Spring' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก (19 Page)
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.