영속성 3

JPA - proxy(프록시)

printMember(Member member) { member.getUsername(); // username만 가져오면 되는데 team 정보도 가져오면 성능상 손해 } printMemberAndTeam(Member member) { member.getTeam(); member.getUsername(); } 지연로딩, 프록시로 해결 가능 프록시 em.getReference() - 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 초기화 할 때는 sql 이 생성 안되고 아래처럼 사용 될 경우 호출함 System.out.println("findMember.username = " + findMember.getUsername()); proxy가 값을 가지고 있으면 그 proxy객체에서 반환 없으면 초..

jpa - 엔티티 매핑

객체와 테이블 매핑 @Entity - jpa가 관리한다. @Table 기본 생성자는 필수 ddl auto create - drop하고 생성 create-drop - create했다가 끝나면 drop한다. update. - 변경 부분만 반영한다. validate. - 기존 db와 비교해서 다르면 애러 none ****주의 개발 초기에는 create , update 테스트 서버는 update, validate 스테이징 운영서버는 validate 또는 None 필드와 칼럼 @Column(name ="", length = 10) - 유니크 조건을 여기다가 걸 수 있지만 이름을 줄 수 없으므로 @Table에 줌 => 보통 애플리케이션: memberId db: member_id => spring boot가 알아서 ..

JPA - 기본 개념과 영속성

ORM이란 object relational mapping 즉 객체 관계 매핑이다. 자바에서 데이터베이스 관계들을 객체로 설계하고 데이터베이스에서는 관계형 데이터 베이스로 설계해서 매핑시켜줌 JPA란 java persistence API의 약자 자바 진영의 ORM 표준으로 인터페이스 모음 JPA를 구현한게 Hibernate JPA 특징 ** JPA의 모든 데이터 변경은 트랜잭션 안에서 실행되어야 합니다. 엔티티 매니저 팩토리와 엔티티 메니저의 관계 엔티티 매니저 팩토리가 앤티티 매니저들을 생성해서 db 커넥션 그리고 엔티티매니저에는 영속성컨텍스트란게 존재한다. 영속성은 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할 비영속 준영속 em.detach(member) 영속 em..