일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring webflux
- 컴퓨터구조
- 알고리즘
- JavaScript
- mongoDB
- IT
- Data Structure
- Java
- MySQL
- C
- Algorithm
- Spring
- Heap
- 운영체제
- OS
- Proxy
- 파이썬
- react
- Kafka
- JPA
- 디자인 패턴
- Galera Cluster
- 네트워크
- MSA
- 자료구조
- c언어
- redis
- design pattern
- 백준
- 자바
- Today
- Total
목록전체 글 (211)
시냅스

즉시 로딩과 지연 로딩 즉시로딩은 엔티티를 로딩하면서 관련된 모든 엔티티를 함께 로딩 하는것 지연로딩은 필요한 시점에 가져오는 것을 말한다. 가급적 지연 로딩만 사용해야 한다. 즉시 로딩을 적용하면 JPQL에서 N + 1 문제를 일으킨다. 만약 Member가 외래키를 갖고 있는 주인이고, Member가 3개에 각 Member의 소속된 팀이 전부 다르다면 쿼리는 4번이 실행된다 (member, team1, team2, team3) 이런 문제는 N(team) + 1(member)이라고 한다. @ManyToOne, @OneToOne은 기본이 즉시 로딩으로 반드시 LAZY로 설정해야 한다. 영속성 전이 : CASCADE 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들 수 이싿. 종류 ..

프록시 em.find() 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference() 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 데이터베이스에 조회가 필요할 때 필요한 시점에 조회한다. 데이터베이스에 쿼리가 실행이 되지 않았음에도 조회가 되는 것 프록시는 실제 클래스를 상속 받아 만들어져 겉 모양이 같다. 클라이언트는 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 됨 프록시 객체는 처음 사용할 때 한 번만 초기화한다. 프록시 객체를 초기화 할 때 프록시 객체가 실제 엔티티로 바뀌는 것은 아니고, 초기화 되면 프록시 객체를 통해서 실제 엔티티에 접근 가능하다. 프록시 객체는 원본 엔티티를 상속 받는다, 따라서 타입 체크시 주의해야함 프록시 내부에는 실제 객체의 참조를..

MappedSuperclass 상속관계 매핑과는 관련이 없다. 엔티티, 테이블과 매핑할 수 없다. 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공한다. 테이블과 관계 없고 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할 조회, 검색 불가. (em.find(BaseEntity) 불가) 직접 생성해서 사용할 일이 없으므로 추상 클래스를 권장한다. 주로 등록일 수정일 등록자 수정자 등 전체 엔티티에서 공통으로 적용하는 정보를 모을 때 사용한다. 참고로 @Entity 클래스는 엔티티나 @MappedSuperclass로 지정한 클래스만 상속 가능하다. @MappedSuperclass public abstract class BaseEntity { private String createdBy; p..