ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 7/6
    CodeStates_Backend/TIL (정제되지 않은 글들) 2022. 7. 6. 18:41

    [굿모닝 - 황정식]

    * JDBC 에서 @Id 는 스프링에서 제공하는것이고, JPA에서 @Id 는 javax에서 제공하는 것으로, 둘은 다름.

     

    *오늘 실습할 것

    -> 요 작은주제 두개 하면 됨. CoffeeRef랑 ORDER_COFFEE테이블이 필요할 것임.

    -> Stamp 클래스도 새로 만들어줘야함.

     

    *즉시 로딩, 지연 로딩

    -> 즉시 로딩은 바로 가져오는 것이고, 지연로딩은 필요할 때 가져오는 것.  스트림, 리액터 등에서 다 사용되는 일반적인 프로그래밍 개념임.

     

     

     

    *질문 : 엔티티 안 멤버변수를 원시형으로 할지 래퍼형으로 할지 선택하는 기준이 있나요? 예를들어 long memberId, Long memberId를 할지

    -> 애매하다..  왠만하면 원시타입으로 되는데,,,,, Optional을 쓰던가, Null을 특별히 처리하고싶던가 등 상황에 맞춰 쓰는 것이다. 뭐가 더 낫고 안낫고는 없다. 

     

     


     

     

    [오후 세션 - 황정식]

     

    -> 현업에서 ddl-auto 는 권장되지 않음.

     

     

    * @GeneratedValue 에 애트리뷰트 안붙히면 AUTO가 디폴트값임.

     

    *질문 : IDENTITY 전략으로 하면 em.persist() 하면 바로 insert 쿼리가 날아가나요?

    -> 알아보고 답 주겠다

     

    * 질문 :sequence전략도 id값으로 1이 나오는데 auto, identity등과 같은 전략이랑 무엇이 다른건가요?? 같은거 아닌지 궁금합니다.

    -> sequence는 데이터베이스 안에 sequence 테이블이 있는데 거기서 값을 미리 가져와서 기본키에 할당한 후 테이블에 넣는것이고 / identity 경우는 테이블에 저장한 후 그 순서대로 기본키에 할당하는 것.

     

    * 1차 캐시에 유지되는 기간은 모르겠다고함. 찾아본다고 함.

     

    * sequence전략은 시퀀스 얻을 때 한 번, 저장할 때 한 번 총 두번 DB에 접근하게 되겠네요.

     

    * sequence를 사용하면 insert문을 몰아서 보낼 수 있겠네요 IDENTITY랑 다르게.

     

    * identity는 persist할때 insert, sequence는 commit할떄 insert라 이해하면된다.

     

    * 아래에서 length 는 보통 varChar로 설정됨.

    * manytomany 구현 코드

     


    저 @JoinColumn의 애트리뷰트 name이 Member의 memberId 라는 이름 그래도 쓰지 않아도 됨. 오히려 이 name어트리뷰트가 더 우선순위가 높음. @Id라는 애너테이션에 의해 자동 결합됨.

     

     

     

     

     

     

     

     

     

    -> 테이블 생성시 컬럼명은, 위 @Column 에서 애트리뷰트로 name 으로 지정해줄 수도 있고, 아니면 변수명이 카멜케이스든 언더바든 다 언더바 스타일로 생성됨. 위에 보면 created_at 보이지? 또는 CREATED_AT으로도 됨.

     

     

     

     

     

    -> 여기서 stamp는 그냥 외래키 설정을 위한 것이지, DB에 컬럼으로 추가하는 것이 아님.

     

     

     

     

     

    7-7_Spring_Data_JPA____.pdf
    0.24MB

    'CodeStates_Backend > TIL (정제되지 않은 글들)' 카테고리의 다른 글

    7/8  (0) 2022.07.08
    7/7  (0) 2022.07.07
    7/5  (0) 2022.07.05
    7/4  (0) 2022.07.05
    7/1  (0) 2022.07.01
Designed by Tistory.