주의 기본 생성자 필수(파라미터가 없는 public 또는 protected생성자)final 클래스,enum, interface,inner 클래스 사용 X저장할 필드에 final사용 X . 2 @Table엔티티와 매핑할 테이블 지정 속성 - name 매핑할 테이블 이름
공부할 때는 되도록 update로 사용하기운영DB에서는 사용 XX
간단한 예시 : 임베디드 타입 클래스를 한 객체에서 2번 사용하고 싶을 경우임베디드 타입 클래스 객체 하나를 @AtrributeOveride를 사용한다
em.find() : 데이터 베이스를 통해서 실제 엔티티 객체 조회em.getReference(): 데이터베이스 조회를 미루는 가짜 엔티티 객체 조회 (프록시) 실제 클래스를 상속 받아서 만들어짐실제 클래스와 겉 모양이 같다.사용하는 입장에서는 진짜 객체인지 프록시 객
프록시 객체 -->지연로딩 가급적 지연 로딩만 사용\--> 연관된 객체가 많을 경우에 즉시로딩을 사용하면 효율이 많이 떨어진다.즉시 로딩은 JPQL에서 N+1 문제를 일으킨다.\--> N개의 Member가 Team을 갖고 있을 시 N개의 team조회 쿼리 발생@Many
스프링 부트 라이브러리 spring-boot-starter-webspring-boot-starter-tomcat: 톰캣 (웹서버)spring-webmvc: 스프링 웹 MVCspring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)spring
@ResponseBodyHTTP의 BODY에 문자 내용을 직접 반환viewResolver(View 이름으로부터 사용할 View Object를 매핑하는 역할.) 대신에 HttpMessageConverter가 동작컨트롤러 -> 서비스 -> 리퍼지토리 -> DB(컨트롤러,서