ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022.05.10 기록장
    TIL 2022. 5. 10. 00:24

    ToDo

    • jpa 공부

    Done

    • jpa 공부

     

    Weekly goal

    • 리액트 공부
    • 피드백 정리
    entity 매니저 생성
    - 엔티티 매니저 팩토리는 생성 비용이 크므로 애플리케이션 하나당 하나만 생성 되어야 한다
    - 엔티티 매니저는 스레드간 공유 x DB 커넥션과 밀접한 관계가 있기 때문이다. 엔티티 매니저가 하는일이 insert나 dml 관련이기 때문
    - jpa는 트랜잭션 안에서 데이터 수정이 이뤄져야 한다. 트랜잭션 없이 데이터를 변경하면 예외가 발생한다
    IDENTITY 전략
    - 해당 전략은 기본 키 생성을 데이터 베이스에 위임하는 전략이다
    - mySql의 auto increment등이 있다
    - 이때 DB에 한 번 같다와야지 id값을 알 수 있는데 그렇기 때문에 persist 시 쓰기 지연은 작동하지 않는다
    - jdbc3에 추가된 insert되면서 key값을 가져오기에 insert select는 아니다. 한번만 통신한다
    AUTO 전략
    - auto는 선택한 데이터베이스 방언에 따라 자동으로 선택되는 것이다
    - mySql이면 IDENTITY를 사용한다
    연관관계의 주인
    - 테이블관점에서 보면 외래키는 하나인데 객체연관관계는 2개이다
    - 여기서 불일치가 발생하는데 여기서 외래키를 가지고 있는 사람을 연관관계의 주인으로 잡아야한다
    - 주인이 아닌 쪽은 mappedBy를 사용한다
    - 연관관계의 주인만이 DB 연관관계와 매핑되고 외래키를 관리할 수 있다
    
    - 근데 객체 관점에서 보면 양쪽다 어플리케이션 상에서 참조를 엮어주는 것이 좋다 -> 연관관계 편의 메소드 제공
    연관관계 편의메소드 변경
    - team에 add시에도 수정해주기
    복합키 설정
    - 복합키를 사용하려면 id들을 위한 식별자 클래스를 만들어야한다
    - IdClass를 이용한다
    상속 관계 매핑 (조인 전략)
    - 1. 조인 전략은 자식들을 모두 테이블로 변환. 구분 컬럼을 둬서 자식들을 구분한다.
    - 장점은 정규화됨. 저장공간을 효율적으로 사용 가능항
    - 단점은 조인으로 인해 성능 저하가 있음
    - 조회 쿼리 복잡함. 등록 시 insert 2번 나감
    상속 관계 매핑 (단일테이블 전략)
    - 1. 하나의 테이블에 정보를 다 때려 박고 컬럼 하나로 구분한다
    - 장점은 조인이 필요 없으므로 성능이 빠름
    - 테이블이 커질 수 있고 이로인해 성능이 느려질 수 있음
    - 대부분을 nullable해야함
    일대일 비식별 관계
    - 비식별 관계에서는 자식만의 id값을 할당해서 사용한다
    - 1대1 식별관계에서는 자식테이블이 기본 키 값으로 부모 키 값을 사용할 때가 많은데 이때는 mapsId를 사용한다
    레이지 로딩
    - inner join이 아닌 left join을 사용한다. 없는 경우도 있으니 그렇다
    - 이는 joinColumn에 nallable에 false를 사용하면 innser join을 사용한다
    레이지 로딩
    - oneToMany는 nullable이어도 left join을 사용한다. 이유는 inner로 했을 경우 팀 자체가 안나올 수 있다
    - 컬렉션을 하나이상 즉시 로딩은 join이 많아지기에 성능에 안좋을 수 있음
    값 타입
    - 값 타입은 순전히 값을 나타내느 것이다
    - 100이 200으로 바뀌면 다른 완전히 다른 값이다
    - 값 타입은 3가지로 볼 수 있다 (자바 기본 타입, 임베디드 타입, 컬렉션 값 타입)
    - 값 타입은 공유해서 쓰지 말자. side effect가 있을 수 있다. 불변객체로 만드는 것이 좋다
    
    - 식별자가 필요하고 지속해서 값을 추적하고 구분하고 변경해야한다면 그것은 값 타입이 아닌 엔티티이다

    'TIL' 카테고리의 다른 글

    2022.05.25 기록장  (0) 2022.05.13
    2022.05.12 기록장  (0) 2022.05.12
    2022.05.05 기록장  (0) 2022.05.05
    2022.05.03 기록장  (0) 2022.05.03
    2022.05.02 기록장  (0) 2022.05.02

    댓글

Designed by Tistory.