일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- c#
- C#강의
- python3
- spring
- 누적합
- BFS
- 브루투포스
- 합 구하기
- unity
- 우선순위큐
- popleft
- mvc
- 인프런
- 파이썬
- pypy3
- 연관관계
- 완전탐색
- 그리디 알고리즘
- DP
- appendleft
- 소수찾기
- 소수판별
- Java
- deque
- Python
- 프로그래머스
- 1일1솔
- LCM
- 백준
- Today
- Total
목록JPA (8)
jae_coding

지연로딩 (fetch = FetchType.LAZY) @ManyToOne(fetch=FetchType.LAZY) 엔티티 조회 시 연관관계 필드가 프록시 객체로 제공되며, 지연로딩을 이용하면, 연관관계를 참조하기 전까지는 프록시 객체가 초기화가 되지 않고, 프록시 객체를 참조할 때, 프록시 객체가 초기화되고 SQL이 발생한다. 즉시로딩 (fetch = FetchType.EAGER) @ManyToOne(fetch=FetchType.EAGER) 엔티티 조회 시 연관관계에 있는 데이터를 한번에 조회하는 기능이며, 엔티티의 연관관계 필드에는 실제 엔티티 객체가 반환된다. TIP 1. 가급적 지연 로딩만 사용 (실무) 2. 즉시 로딩을 이용하면 예상하지 못한 SQL이 발생 3. 즉시 로딩은 JPQL에서 N+1 문제..

목차 상속관계 매핑 Superclass 1. 상속관계 매핑 RDBMS는 상속관계가 존재하지 않는다. 하지만, DB의 슈퍼타입, 서브타입 관계라는 모델링 기법이 객체의 상속과 유사하다. 예제 슈퍼타입, 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법? 각각의 테이블로 변환 👉 조인 전략 테이블 데이터를 각각 만들어 둔 상태에서 부모 테이블과 자식 테이블을 둘다 insert한 후 join하는 전략이다. 부모 테이블은 구분하는 Column을 둔다. 예를 들어 ITEM의 DTYPE이다. 예제를 똑같이 따라하는 방식으로 진행해 보았다. ALBUM package hellojpa; import javax.persistence.DiscriminatorColumn; import javax.persistence.Di..

목차 연관관계 매핑시 고려사항 다대일 [N:1] 일대다 [1:N] 일대일 [1:1] 다대다 [N:M] 1. 연관관계 매핑시 고려사항 다중성 (DB의 관점에서) 다대일: @ManyToOne (가장많이 사용한다) 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany (실무에서는 사용하면 안된다) 단방향 매핑 or 양방향 매핑 테이블 외래 키 하나로 양쪽 조인 가능 방향이라는 개념이 존재하지 않음 객체 참조용 필드가 있는 쪽으로만 참조가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 양방향일때, 연관관계의 주인 테이블 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 A와 B 양방향 관계는 A👉B, B👉A 처럼 참조가 2군데임 참조가 2개이니 2개중 테이블의 외래키를 관..

목차 단방향 연관관계 양방향 연관관계와 연관관계의 주인 목표 객체와 테이블 연관관계의 차이에 대한 이해 객체의 참조와 테이블의 외래 키 매핑 방향, 다중성, 연관관계의 주인에 대한 용어 이해 0. 예제 시나리오 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계이다. 객체 Diagram 테이블 Diagram 1. 단방향 연관관계 Member Entity package hellojpa; import javax.persistence.*; import java.util.Date; @Entity public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; @Column(name = "u..

목차 객체와 테이블 매핑 DB 스키마 자동 생성 필드와 컬럼 매핑 기본 키 매핑 0. 앤티티 매핑 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn 1. 객체와 테이블 매핑 @Entity - @Entity가 붙은 클래스는 JPA가 관리하는 엔티티이다. - JPA를 사용해서 테이블과의 매핑할 클래스는 @Entity 어노테이션을 꼭 붙여야한다. - 주의사항 1) 기본 생성자 필수 (parameter가 없는 public or protected 생성자) 2) final class, enum, interface, inner class 에는 사용할 수 없다. 3) 저장할 필드에는 final을 사용할 ..

목차 영속성 컨텍스트 플러시 준영속 상태 1. 영속성 컨텍스트 (JPA를 이해하는데 가장 중요 !) 의미: 엔티티를 영구 저장하는 환경 예시 EntityManager.persist(entity); 이것은 DB에 저장하는 것이 아닌 Entity를 영속성 컨텍스트에 저장하는 것이다. 영속성 컨텍스트는 논리적인 개념이며, 눈에 보이지않는다. 그리고 엔티티 매니저를 통해서 영속성 컨텍스트에 접근할 수 있다. 위와 같이 엔티티 매니저를 통해서 눈에 보이지 않는 영속성 컨텍스트라는 공간에 접근할 수 있게되는 것이다. 엔티티는 생명주기가 있다? • 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 비영속 Member member = new Member(); member.setI..

목차 SQL 중심적인 개발의 문제점 JPA 소개 1. SQL 중심적인 개발의 문제점 배경: 21세기는 객체를 관계형 DB에 관리하기때문에 SQL을 중심적으로 개발하였다. 하지만 이는 반복되는 쿼리가 발생한다는 단점이 생긴다. 물론 요즘에는 JDBC 템플릿, 마이바티스 같은 메퍼들이 있기때문에 일이 줄었지만 아직 반복되는 점들이 많이 존재한다. 반복적인 예) CRUD 자바 객체를 SQL로 SQL을 자바객체로 반복해야한다. 관계형 DB를 사용하는 상황에서는 SQL에 의존적인 개발을 피하기는 어렵다. 또한, 객체와 관계형 데이터베이스의 패러다임의 불일치가 존재한다는 단점이 있다. '객체 지향 프로그래밍': 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다..

목차 홈 화면 레이아웃 구성 회원 등록 및 조회 상품 등록, 수정 및 목록 조회 상품 주문, 취소 및 목록 조회 결과 페이지 1. 홈 화면 레이아웃 구성 view 리소스 코드 https://getbootstrap.com/ Bootstrap The most popular HTML, CSS, and JS library in the world. getbootstrap.com 에 들어가셔서 본인의 버전에 맞도록 다운로드 후 resources에 등록하시면 됩니다. 그리고 css 파일을 추가해주시면 됩니다. jumbotron-narrow.css 파일 /* Space out content a bit */ body { padding-top: 20px; padding-bottom: 20px; } /* Everything..