JAVA/JPA

· JAVA/JPA
동일성 보장 영속성 컨텍스트는 자신이 관리하는 영속 엔티티 한에서는 동일성을 보장한다. 프록시로 조회했을 때도 마찬가지다. 예제 @Test public void 영속성_테스트() { Member newMember = new Member("member1"); em.persist(newMember); em.flush(); em.clear(); Member refMember = em.getReference(Member.class, newMember.getId()); Member findMember = em.find(Member.class, newMember.getId()); System.out.println("refMember Type = " + refMember.getClass()); System.out.p..
· JAVA/JPA
JPA는 영속성 컨텍스트 내부에서 1차 캐시를 통해 엔티티를 저장하고 생명주기를 관리한다. 그렇기 때문에 1차 캐시를 통해 데이터의 변경을 감지하고 조회할 때도 데이터베이스를 통해 가져올 필요없이 1차캐시 내부에서 가져와서 사용하게 됩니다. 이러한 장점은 어플리케이션 반복 가능해서 읽기가 가능하게 한다. 덕분에 같은 엔티티를 조회시 데이터 베이스를 통해 다시 가져오거나 컨텍스트에 등록할 필요가 없이 재사용할 수 있다. 동일성 테스트 @Service @Transactional @RequiredArgsConstructor public class MemberService { private final MemberRepository memberRepository; public Long join(Member mem..
· JAVA/JPA
JPA는 여러가지 Exception을 제공한다. 그리고 해당 Exception은 PersistenceException을 상속하기 때문에 모두 PersistenceException의 자식이다. 참고로 PersistenceException은 RuntimeException을 상속하여 정의되었다. Persistence Exception 과 Transaction JPA Exception은 크게 두가지로 나뉠 수 있다. 트랜잭션의 롤백을 표시하는 Exception 트랜잭션의 롤백을 표시하지않는 Exception 트랙잭션을 롤백을 표시한다는 것은 간단하게 말하자면 스프링에서 트랜잭션을 사용하려고할 때 내부 쓰레드가 rollback only mark가 되어있는지 확인하고 안되어 있다면 정상적으로 비지니스 로직을 처리하..
· JAVA/JPA
보호되어 있는 글입니다.
· JAVA/JPA
보호되어 있는 글입니다.
· JAVA/JPA
복합키란? 복합 키(Composite Key)는 두 개 이상의 PK를 하나로 PK로 지정하는 것을 말한다. 이러한 복합키를 가지고 있는 논리 모델은 식별 관계와 비식별 관계로 구분되어 사용한다. 식별 관계 부모테이블의 기본키를 상속 받고 자식 테이블의 기본키 + 외래키의 구조로 사용되는 구조 입니다. 비식별 관계 비식별 관계는 부모 테이블의 기본키만 받아서 자식 테이블의 FK로 사용하는 것이 비식별 관계입니다. 이러한 관계는 FK가 Null이냐 아니냐에 따라서 필수적 비식별 관계와 선택적 비식별 관계로 구분되어집니다. JPA는 이러한 식별, 비식별 관계를 모두 제공합니다. JPA에서의 복합키 JPA에서는 아래와 같은 두개의 식별자를 사용하려면 오류가 발생하기 때문에 별도의 식별자 클래스를 만들어야합니다...
ri5
'JAVA/JPA' 카테고리의 글 목록