목록JAVA/JPA (2)
개발 기록
영속성 컨텍스트 -엔티티를 영구 저장하는 환경 엔티티의 생명주기 -비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 -영속(managed) : 영속성 컨텍스트에 관리되는 상태 -준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 -삭제(removed) : 삭제된 상태 엔티티 조회, 1차 캐시 em.persist(member); 영속상태가 되고 1차 캐시에 저장됨 ( 영속성 컨텍스트 안에 1차 캐시 존재 ) --> 데이터 조회시 db보다 먼저 1차 캐시에서 데이터를 찾음 --> 1차 캐시에 없으면 db에서 조회후 1차 캐시에도 저장하고 그것을 반환 영속 엔티티의 동일성 보장 -1차 캐시로 반복 가능한 읽기 등급의 트랜잭션 격리 수준을 데이터베이스가 ..
CRUD 코드가 다 만들어져 있어서 불러쓰면 되기 때문에 편하고 생산성이 높음 저장 - jpa.persist(member) 조회 - Member member - jpa.find(memberId) 수정 - member.setName("이름") 삭제 - jpa.remove(member) 필드 변경시 SQL은 JPA가 처리하기 때문에 필드만 추가하면 됨 유지보수하기 좋음 패러다임의 불일치 해결 객체지향 언어와 관계형 데이터베이스 사이의 불일치를 해결, 연결해줌 성능 최적화 기능 같은 트랜잭션 안에서는 같은 엔티티를 반환 (1차 캐시와 동일성 보장) 트랜잭션이 짧기때문에 크게 성능 향상은 안됨 커밋할 때 까지 INSERT SQL을 모은 후 커밋하는 순간 같이 보낸다 지연 로딩 - 객체가 실제로 사용될 때 로딩 ..