일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 뇌정리
- 필기
- 정보처리기사
- Til
- sqldeveloper
- 회고
- 2020년 정보처리기사 4회
- If
- 항해99
- 서평
- 2020년 일정
- 코드숨
- 스터디
- 주간회고
- 2020년 제4회 정보처리기사 필기 문제 분석
- Python
- Jackson
- java
- hackerrank
- algorithms
- LeetCode
- post
- 알고리즘
- jsp
- Real MySQL
- 성적프로그램
- 책리뷰
- 미니프로젝트
- git
- 함수형 코딩
- Today
- Total
목록공부/JPA (6)
조컴퓨터
엔티티를 생성하면 공통적으로 들어가는 속성이 있는데, 이는 `생성일자` 와 `수정일자` 이다. 매번 작성하기 보다는 중복으로 발생하는 내용을 상속 받는 구조로 처리할 것이다. BaseTimeEntity.java @Getter @MappedSuperclass public abstract class BaseTimeEntity { @CreationTimestamp @Column(name = "created_at", nullable = false) private LocalDateTime createdAt; @UpdateTimestamp @Column(name = "updated_at", nullable = false) private LocalDateTime updatedAt; } User.java @Getter..

- 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 사용 예) 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장 영속성 전이: 저장 이때, 영속성 전이는 연관 관계를 매핑하는 것과 관련이 없다는 것을 주의한다. 영속성 전이는 엔티티를 영속화할 때 연관된 엔티티도 함께 영속화하는 편리함만을 제공한다. CASCADE 의 종류 ALL : 모두 적용 PERSIST : 영속 REMOVE : 삭제 MERGE : 병합 REFRESH : REFRESH DETACH : DETACH 고아 객체 - 고아 객체 제거: 부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제 - orphanRemoval = true - 고아 객체는 참조하는 곳이 하나일 때만 사용해야 한다. 영속성 전이..
- 가급적 지연 로딩만 사용(특히 실무에서) - 즉시 로딩을 적용하면 예상하지 못한 SQL 이 발생 - 즉시 로딩은 JPQL 에서 N+1 문제를 일으킨다. - @ManyToOne, @OneToOne 은 기본이 즉시 로딩 (즉, LAZY 로 설정을 변경해야 한다) - @OneToMany, @ManyToMany 는 기본이 지연 로딩 - 모든 연관 관계에서 지연 로딩을 사용하고, - 즉시 로딩을 사용할 시, JPQL fetch 조인이나 엔티티 그래프 기능을 사용하자. 참고) 1. 김영한 님의 '자바 ORM 표준 JPA 프로그래밍 - 기본편'에서 즉시 로딩과 지연 로딩

1. 단방향 매핑을 먼저 정리하라 2. 양방향 매핑은 반대 방향으로의 조회 기능이 필요할 때 진행 (JPQL 에서 역방향으로 탐색할 일이 많음) 3. 단방향 매핑을 잘해놓고 양방향 매핑은 필요할 때 추가하면 됨 -> 테이블에 영향을 주지 않음 참고) 1. 김영한 님의 '자바 ORM 표준 JPA 프로그래밍 - 기본편'에서 양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리
- JPQL 은 엔티티 객체를 대상으로 쿼리 - SQL 은 데이터베이스 테이블을 대상으로 쿼리 JPQL - 테이블이 아닌 객체를 대상으로 검색하는 객체 지향 쿼리 - SQL 을 추상화해서 특정 데이터베이스 SQL 에 의존하지 않음 - JPQL 을 한마디로 정의하면 객체 지향 SQL 참고) 1. 김영한 님의 '자바 ORM 표준 JPA 프로그래밍 - 기본편'에서 Hello JPA - 애플리케이션 개발
데이터베이스 분야에서 개체 또는 엔티티(Entity) 라 하는 것은 데이터베이스에 표현하려고 하는 유형, 무형의 객체로서 서로 구별되는 것을 뜻한다. 이 개체는 현실 세계에 대해 사람이 생각하는 개념이나 정보의 단위로서 의미를 가지고 있다. 이것은 컴퓨터가 취급하는 파일의 레코드(record) 에 대응한다. 이 개체는 그 단독으로 존재할 수 있으며, 정보로서의 역할을 한다. 하나의 개체는 하나 이상의 속성, 즉 애트리뷰트(attribute) 로 구성되고 각 속성은 그 개체의 특성이나 상태를 기술해 준다. 예를 들어, 학생이라는 개체는 학번, 이름, 학과라는 3개의 속성들로 구성되어 있다. 이때 학번, 이름, 학과는 학생이라는 개체가 가지고 있는 특성, 즉 값을 나타내고 있는 것이다. 이와 같이 속성, 즉..