JPA

🍀spring/스프링 jpa

[Spring JPA] 연관관계 매핑 기초

안녕하세요. 오늘은 jpa 연관관계 매핑 기초에 대해 알아보려 합니다. 김영한님의 자바 ORM 표준 JPA 프로그래밍을 읽고 정리했습니다. 단방향 연관관계 연관관계 중에서는 다대일 단방향 관계를 가장 먼저 이해해야한다. 회원과 팀의 관계를 통해 다대일 관계를 알아보려고 한다. - 회원과 팀이 있다. - 회원은 하나의 팀에만 속할 수 있다. - 회원과 팀은 다대일 관계다. 테이블 연관관계의 경우 TEAM_ID를 외래 키로 사용하여 회원 테이블과 팀 테이블이 연관관계를 맺는다. 그렇게 되면 두 테이블은 양방향 관계가 되고 회원이 팀을 조회할 수 있고, 팀도 회원을 조회할 수 있다. SELECT * FROM MEMBER M JOIN TEAM T ON M.TEAM_ID = T.TEAM_ID; # 회원과 팀을 조..

🍀spring/스프링 jpa

[Spring JPA] 엔티티 매핑

안녕하세요. 오늘은 jpa를 사용하여 엔티티와 테이블을 매핑하기 위한 어노테이션에 대해 알아보려합니다. 김영한님의 자바 ORM 표준 JPA 프로그래밍을 읽고 정리했습니다. @Entity jpa를 사용하여 테이블과 매핑하기 위해서는 @Entity 어노테이션을 붙여야한다. 이 어노테이션이 붙은 테이블은 jpa가 관리하며 엔티티라고 부른다. 엔티티 클래스를 사용할 때는 세 가지의 주의사항이 있다. 1. 기본 생성자는 필수 jpa가 엔티티 객체를 생성할 때 기본 생성자를 이용하므로 이 생성자는 반드시 있어야 한다. 자바는 생성자가 없으면 기본 생성자를 자동으로 생성한다. 하지만 임의의 생성자를 만들었다면 기본 생성자를 만들어야 한다. public Member() {} // 기본 생성자 public Member(..

🍀spring/스프링 jpa

[Spring JPA] 영속성 관리

안녕하세요. 오늘은 jpa가 엔티티를 어떻게 관리하는 지 에 대해서 알아보려고 합니다. 김영한님의 자바 orm 표준 jpa 프로그래밍을 읽고 정리했습니다. 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저 팩토리는 엔티티 매니저를 만드는 공장이다. 이를 만드는 비용이 커서 한 개만 만들어서 공유하도록 설계되어 있다. 엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하지만 엔티티 매니저는 여러 스레드에서 공유하여 사용하면 동시성 문제가 생길 수 있어서 공유하면 안된다. 요청2의 엔티티 매니저는 db의 커넥션 풀을 사용하고 있는데 요청1의 엔티티 매니저는 사용하고 있지 않다. 엔티티 매니저는 db 연결이 꼭 필요한 시점까지 커넥션 풀을 얻지 않는다. 보통 트랜잭션을 시작할 때 커넥션을 획득한다. ..

🏆토이 프로젝트에서 생긴 일

[Spring] JPA 공부를 열심히 해야 하는 이유 (친구 추가 기능 설계)

안녕하세요. 죽지 않고 돌아왔습니다. 오늘은 jpa 지식이 부족한 채로 사용한 자의 최후 그리고 설계의 중요성에 대해 알아보려고 합니다. 처음에는 토이 프로젝트를 게시판, 댓글 정도로 생각하고 설계를 했는데 욕심이 생겨서 이것 저것 만들어보고 싶어졌습니다. 그래서 좋아요 기능도 넣고 친구 추가 기능도 넣었습니다. 그래서 대충 설계를 하고 바로 기능을 추가하려고 했습니다. 친구란? 친구 요청을 보내면 상대방이 받아야 이뤄질 수 있는 관계입니다. 그래서 요청을 보내는 db를 만들고 member 테이블에 List 형태로 친구를 저장하고자 했습니다. Friend 엔티티는 이렇게 짰고, @AllArgsConstructor @NoArgsConstructor @Getter @Builder @Entity public ..

pkyung
'JPA' 태그의 글 목록 (2 Page)