연관관계 매핑시 고려사항 3가지다중성JPA 에서는 다중성을 위한 어노테이션을 제공한다.이 JPA 어노테이션들은 DB와 매핑하기 위해 존재 한다.그래서 데이터베이스 관점에서의 다중성을 기준으로 고민 하면 된다.다대일 - @ManyToOne일대다 - @OneToMany일대일 - @OneToOne다대다 - @ManyToMany다중성을 고민하다가 풀리지 않으면 대칭성을 고려하자. 다중성의 관계들은 대칭성을 다 가지고 있다. 예를 들면, 회원과 팀 - 팀과 회원 둘다를 고려하면 쉬워 진다.단방향, 양방향이전 학습 내용 정리단방향 연관관계 - https://ict-nroo.tistory.com/121양방향 연관관계 - https://ict-nroo.tistory.com/122테이블은외래 키 하나로 양쪽을 조인할 수..
양방향 연관관계와 연관관계의 주인Team을 통해서도 getMemberList()로 특정 팀에 속한 멤버 리스트를 가져오고 싶다.객체 설계는 위와 같이 Member에서는 Team을 가지고 있고, Team에서는 Members를 가지고 있도록 설계하면 된다. DB를 보자. DB는 단방향 매핑때와 바뀌는게 없다. 왜냐. 둘을 join 하면 된다. DB는 방향이 없다!이 두가지가 큰 차이다.코드로 이해Member 엔티티는 단방향과 동일하다.@Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; private int age; @ManyToOne @JoinColum..
단방향 연관관계 매핑 이론객체지향 모델링객체 연관관계 사용해서 아래의 객체 참조와 테이블의 외래키를 매핑하는 방법 학습객체의 참조와 테이블의 외래 키를 매핑한다.외래 키 대신에 TEAM 객체를 넣고TEAM_ID를 매핑한다. @JoinColumn으로 조인 컬럼을 명시한다. 안적어도 default로 들어간다. 적어주는게 더 명시적이다.그리고 연관관계를 설정한다 @ManyToOne.하나의 Team이 여러개의 Member를 가지고 있다.그렇게 보면 TEAM 입장에서는 일대다,Member 입장에서는 다대일이다. @ManyToOne.이렇게 설정하면 Team 이라는 필드가 DB에 있는 TEAM_ID라는 FK와 매핑이 된다. 관계를 선언하고 조인할 컬럼을 매핑 했다.이것을 연관관계 매핑이라고 한다. ORM 매핑!!!!..
Spring Data JPA와 QueryDSLJPA 기반 프로젝트Spring Data JPAQueryDSLSpring Data JPA지루하게 반복되는 CRUD 문제를 세련된 방법으로 해결개발자는 인터페이스만 작성한다스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입스프링 데이터 JPA 적용 전public class MemberRepository { public void save(Member member) {...} public Member findOne(Long id) {...} public List findAll() {...} public Member findByUsername(String username) {...} }public class ItemRepository { public void ..
JPA 객체지향 쿼리연관관계 매핑과 영속성 컨텍스트 등 앞의 내용들로 기본기를 다졌고, 지금부터는 활용 단계이다.JPA와 객체지향 쿼리QueryDSLJPA는 다양한 쿼리 방법을 지원JPQLJPA CriteriaQuertDSL네이티브 SQLJDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용JPQL 소개Java Persistence Query Language가장 단순한 조회 방법EntityManager.find()객체 그래프 탐색(a.getB().getC())로 get get get 하면서 계속 찾아다닐 수 없다.나이가 18살 이상인 회원을 모두 검색하고 싶다면?JPQLJPA를 사용하면 엔티티 객체를 중심으로 개발문제는 검색 쿼리검색을 할 때도 테이블이 아닌 엔티티 객체..
JPA 필드와 컬럼 매핑데이터베이스 스키마 자동 생성하기DDL을 애플리케이션 실행 시점에 자동 생성테이블 중심 -> 객체 중심으로 이동한 것이다.데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성이렇게 생성된 DDL은 개발 장비에서만 사용생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용hibernate.hbm2ddl.autocreate기존 테이블 삭제 후 다시 생성(DROP + CREATE)create-dropcreate와 같으나 종료시점에 테이블 DROP(테스트에서 사용하면 도움됨)update변경분만 반영(운영DB에는 사용하면 안됨)validate엔티티와 테이블이 정상 매핑되었는지만 확인none사용하지 않음데이터베이스 스키마 자동 생성하기 주의운영 장비에는 절대 c..
- Total
- Today
- Yesterday
- Spring
- JPA
- 정렬
- 젠킨스
- 한밭대학교
- github
- Vue.js
- 레드블랙트리
- IT융합인력양성사업단
- vuex
- springboot
- vuejs
- Recursion
- 시간복잡도
- 인프런
- Algorithm
- Raspberry Pi
- Spring Boot
- 순환
- 라즈베리파이
- Wisoft
- 스프링부트
- 무선통신소프트웨어연구실
- RBT
- AWS
- Java
- 자바
- 알고리즘
- ORM
- 한밭이글스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |