본문 바로가기

Backend/JPA8

[JPA] 다중 Datasource 구성하기 (Spring boot Multi Datasource / DB 여러개 설정) 프로젝트를 진행하던 중 여러개의 DB에서 데이터를 가져와야하거나 같은 DB지만 다른 스키마인 경우가 있었다. 이럴 때는 다중 Datasource를 설정해주면 된다. 코드로 구현해봤다. mysql의 'testdb'의 student 테이블이 있다. 또 'sample'의 student_log 테이블이 있다. 이 데이터들을 하나의 프로젝트에서 쓰고 싶다. 1. 스프링 부트 프로젝트 셋업 일단 일반적인 스프링부트 프로젝트를 만들어줬다. build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.12' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'com... 2023. 6. 19.
[JPA] 상속 관계 매핑 전략 (조인 전략 / 단일 테이블 전략 / 구현 클래스마다 테이블 전략 / MappedSuperClass) 객체의 상속 관계를 JPA에 적용시키는 3가지 전략을 정리해봤다. 부모 객체는 Employee고 id와 name을 갖는다. 자식 객체는 FullTimeEmployee와 PartTimeEmployee로 구성한다. 전략을 비교하기 전 기본적인 코드부터 작성하겠다 Employee 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import lombok.Getter; import lombok.Setter; import javax.persistence.*; @Getter @Setter @Entity public abstract class Employee { @Id @GeneratedValue private Long id; pri.. 2022. 12. 1.
[JPA] ManyToMany 연관관계 (mappedby / fetchType) 🎫 OneToOne 연관관계 2022.10.14 - [Backend/JPA] - [JPA] OneToOne 연관관계 (mappedby / fetchType) 🎫 OneToMany, ManyToOne 연관관계 [JPA] ManyToOne, OneToMany 연관관계 (mappedby / fetchType) (tistory.com) 이번에는 다대다 관계 ManyToMany이다. 이번에는 Course와 Student 엔티티를 만들어줬다. 하나의 강의에는 여러명의 학생들이 들을 수 있고 한 학생은 또 여러개의 강의를 들을 수 있다. Course 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3.. 2022. 10. 26.
[JPA] ManyToOne, OneToMany 연관관계 (mappedby / fetchType) 🎫 OneToOne 연관관계 [JPA] OneToOne 연관관계 (tistory.com) 이번에는 제일 흔한 연관관계인 ManyToOne, OneToMany 연관관계이다. 이 연관관계는 1대 다 관계인 관계고 역시 FK로 연결되어 있다. 이번에는 Course와 Review 엔티티를 만들어줬다. 하나의 강의에는 여러개의 리뷰를 가진다. 강의는 1 리뷰는 多 의 연관관계가 된다. Course 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 import lombok.AllArgsConstructor; i.. 2022. 10. 18.