๐ŸŒป JAVA/์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ

5 - 1) ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘ ๊ธฐ์ดˆ - ์—ฐ๊ด€๊ด€๊ณ„๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

iseunghan 2020. 10. 19. 10:38
๋ฐ˜์‘ํ˜•

์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ

JPA๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ฑฐ๋‚˜, ์‹ค๋ฌด์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด JPA์˜ ๊ธฐ๋ณธ ์ด๋ก ์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ํ•™์Šตํ•ด์„œ ์ดˆ๋ณด์ž๋„ ์‹ค๋ฌด์—์„œ ์ž์‹ ์žˆ๊ฒŒ JPA๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๏ฟฝ

www.inflearn.com

 

 

โœ…๊ฐ์ฒด๋ฅผ ํ…Œ์ด๋ธ”์— ๋งž์ถฐ ๋ชจ๋ธ๋ง

๋‹ค ๋Œ€ ์ผ ๊ด€๊ณ„ (์—ฐ๊ด€๊ด€๊ณ„๊ฐ€ ์—†๋Š” ๊ฐ์ฒด)

@Entity
public class Member {
	@Id @GeneratedValue
    private Long id;
    
    @Column(name = "USERNAME")
    private String name;
    
    @Column(name = "TEAM_ID")
    private Long teamId;
    
    // getter & setter
}
@Entity
public class Team {
	@Id @GeneratedValue
    private Long id;
    
    private String name;
    
    // getter & setter
}

'๋‹ค' ๊ด€๊ณ„์ธ ํ…Œ์ด๋ธ”์ชฝ์— ํ•ญ์ƒ ์™ธ๋ž˜ํ‚ค(FK)๊ฐ€ ์žˆ๋Š”๊ฒŒ ์ข‹๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค๊ณ„ํ•˜๋Š” ์ด์œ ๋Š” ๋‚˜์ค‘์— ๋‚ ๋ผ๊ฐ€๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ด๋„ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š๊ฒŒ ๋” ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด๋‹ค.

 

์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ €์žฅ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ..

// ํŒ€ ์ €์žฅ
Team team = new Team();
team.setName("TeamA");
em.persist(team);

// ํšŒ์› ์ €์žฅ
Member member = new Member();
member.setName("member1");
member.setTeamId(team.getId()); // ์ด ๋ถ€๋ถ„!
em.persist(member);

member.setTeamId(team.getId()) ์ด ๋ถ€๋ถ„์€ ๊ฐ์ฒด์ง€ํ–ฅ์ ์ด์ง€ ์•Š๋‹ค. Member์—์„œ ๋ฐ”๋กœ Team ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

๊ฐ์ฒด๋ฅผ ํ…Œ์ด๋ธ”์— ๋งž์ถ”์–ด ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์œผ๋กœ ๋ชจ๋ธ๋งํ•˜๋ฉด, ํ˜‘๋ ฅ ๊ด€๊ณ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค.

 

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” "๊ฐ์ฒด ์ง€ํ–ฅ ๋ชจ๋ธ๋ง"์„ ์•Œ์•„๋ณด์ž.

 

๋ฐ˜์‘ํ˜•