2023.06.19.월.TIL

heeh·2023년 6월 19일

TIL

목록 보기
24/82
post-thumbnail

Spring 입문

  • JPA가 Entity 클래스를 인스턴스화(객체화) 할 때 기본 생성자 사용
  • @Table : 데이터베이스에서 맵핑할 table의 이름 지정
    default : Entity 명이 됨
  • @Colume : 데이터베이스의 Column과 필드(private ~)를 맵핑하는 의미
    default : 객체의 Entity 클래스의 필드명
  • nullable : 데이터의 null값 허용 여부 지정
    ex) nullabe : false → null 허용 안함
  • unique : 데이터 중복값 허용 여부 지정
    ex) unique : true → 데이터 중복 허용 안함(유니크한 값만 받겠다), false가 중복 허용
  • length : 길이를 줄 수 있는 옵션 (데이터 값, 문자 길이 제약)
    default : 255
  • @ID : 필드의 기본 key를 저장(Entity에서 굉장히 중요!) Primary key
  • Java 환경에서 JAP를 사용하려면 persistence.xml에 설정 해야 함
  • @GeneratedValue(strategy = GenerationType.IDENTITY) : auto_increment 추가
  • 영속성 컨텍스트, JPA는 트랜잭션의 개념을 가져와서 반영 = 효율적으로 관리
  • EntityManager 내부에 EntityTransaction이라는 것을 가져올 수 있음
  • 트랜잭션에 rollback method를 호출하면 위에서 한 작업이 취소됨
  • finally : 무조건 실행됨
  • 콘솔에서 한글이 깨지는 현상
    • 인코딩 문제 해결
      • idea64.exe.vmoptions에 추가
      • Dfile.encoding=UTF-8
      • Dconsole.encoding=UTF-8
    • 경로에 한글 삭제 → camp
  • 콘솔에서 sql을 따로 작성안해도 스프링에서 jpa로 대신 작성할 수 있다
  • flush : 영속성컨텍스트에서 변경사항을 db에 적용하는 메서드
    flush를 통해서 db와 동기화를 해줄 수 있음
  • clear : 영속성컨텍스트와 분리가 되고 추적이 안되기때문에 db랑 동기화 불가
  • EntityTransactoin et = em.getTransaction();
    → 트랜젝션 걸어주기
  • 영속성 컨텍스트가 가지고 있는 기능 첫 번째
  • 1차 캐시 기능 Map 자료 구조, 효율적으로 관리
  • 쓰기 지원 저장소, 데이터베이스의 트랜잭션 처럼 Query를 담고 있다가 트랜잭션 commit 하면서 한 번에 반영
  • Dirty Checking 변경 감지, 최초 상태를 저장 했다가 현재 상태와 비교해서 변경 내용이 있다면 UpdateQuery를 발생
    → 트랜잭션 commit 호출이 되고 난 다음에 flush method 호출이 되면서 비교

입문 강의 빨리 다 보고 숙련 강의 들어가기!

profile
공부하자개발하자으쌰으쌰

0개의 댓글