본문 바로가기

Spring52

연관관계 - 양방향 연관관계(기본 컨셉) 단방향 연관관계에서는 1:N의 관계에서 'N'에 해당하는 Entity에 @JoinColumn 애너테이션을 이용하여 단방향 연관관계를 표현하였다. 단방향 연관관계는 한계가 존재하는데, 한 쪽 방향으로만 데이터를 조회할 수 있다 아래와 같은 테이블이 있다고 치자 관계형DB에서는 외래키인 DEPT_ID를 이용하여 Employee와 Department 양 쪽 모두 조회가능하다 하지만, 위 테이블과 매핑되는 Entity를 보자. 보기 쉽게 표현하면 아래와 같은 그림이 될 것이다 위 Entity의 경우, Employee에서는 Department 객체의 참조값을 이용해서 Department 데이터를 조회가능하지만, Department에서는 Employee의 참조값이 존재하지 않으로 Employee 조회가 불가능하다 .. 2023. 3. 7.
연관관계 - 단방향 연관관계 이 페이지에서는 JPA에서 테이블 간 관계를 어떻게 표현하는지 알아보도록 하겠다 아래와 같이 Department(부서)와 Employee(직원) 테이블이 있다고 치자. 위 테이블 간 관계를 그대로 Entity로 표현하면 아래와 같이 표현할 수 있다. Employee @Entity public class Employee{ /** 직원 id */ @Id @Column(name="EMPLOYEE_ID") private Long id; /** 직원 이름 */ private String name; /** 직원 나이 */ private Integer age; /** 부서 id */ private Long departmentId; } Department @Entity public class Department{ /*.. 2023. 2. 28.
Entity-Table 매핑 - 기본키 매핑 JPA에서 기본키를 어떻게 매핑할 수 있는지 알아보겠다 먼저, 엔티티에서 기본키를 매핑하려면 기본키에 해당하는 필드 위에 @Id 애너테이션을 붙이면 된다 @Entity public class Member{ @Id public Long id; } 그리고 기본키 타입이 정수형일 경우 Insert시 기본키 값이 자동으로 증가되게 하려면 @GeneratedValue라는 애너테이션을 기본키에 해당하는 필드 위에 붙이면 된다 @Entity public class Member{ @Id @GerneratedValue(strategy=GenerationType.AUTO) public Long id; } @GeneratedValue에는 기본키값을 증가시키는 여러 전략들이 존재한다 @GeneratedValue 전략 Gene.. 2023. 2. 24.
환경세팅 Dependency 목록 maven mysql mysql-connector-java 8.0.27 org.hibernate hibernate-entitymanager 5.6.11.Final org.projectlombok lombok 1.18.24 provided persistence.xml 아래 경로에 persistence.xml 파일을 작성한다 src/main/resources/META-INF/persistence.xml 추가 1) persistence.xml 에서 h2 DB Driver를 찾지못하는경우 위 경우에는 pom.xml에 아래와 같이 되어있는지 확인한다 는 dependency를 어느 시점에 적용할 것인지 설정하는 부분이다 아래에서는 test로 설정되어 테스트 컴파일 및 실행 단계에서만 적용되.. 2023. 2. 24.