https://www.inflearn.com/course/ORM-JPA-Basic/2 변경 감지와 병합(merge) 준영속 엔티티 영속성 컨텍스트가 더 이상 관리하지 않는 엔티티. ex ] 실습의 Book 객체는 이미 DB에 한번 저장되어 식별자가 존재한다. 이렇듯 임의로 만들어 낸 엔티티도, 기존 식별자를 가지고 있으면 준영속 엔티티로 볼 수 있다. 또한 준영속 엔티티는 엔티티값을 수정하여도 JPA가 자동으로 업데이트 해주지 않는다. 준영속 엔티티를 수정하는 2가지 방법 변경 감지 기능을 사용 영속성 컨텍스트에서 엔티티를 다시 조회한 후에 데이터를 수정하는 방법. 트랜잭션 안에서 엔티티를 다시 조회, 변경할 값 선택 -> 트랜잭션 커밋 시점에 변경감지(Dirty Cehcking)이 동작 해서 데이터베이스에 UPDATE SQL 실행 병합(merge) 를 사용 병합은 준영속 상태의 엔티티를 영속 상태로 변경할 때 사용하.. 2021. 8. 24. Entity 설계시 주의점 1. Entity 에는 가급적 Setter 를 사용하지 말자. Setter가 모두 열려있게 된다면, 변경 포인트가 많아져 유지보수가 어렵다! 2. 모든 연관관계는 지연로딩으로 설정한다. 즉시로딩(EAGER) 은 예측이 어렵고, 어떤 SQL이 실행될지 추적하기 어렵다. 실무에서 모든 연관관계는 지연로딩(LAZY) 으로 설정해야 한다. 연관된 엔티티를 함께 DB에서 조회해야 하면, fetch join 또는 엔티티 그래프 기능을 사용한다. @XToOne(OneToOne, ManyToOne) 관계는 기본이 즉시로딩이므로 직접 지연로딩으로 설정해야 한다. 3. 컬렉션은 필드에서 초기화 하자. [ private List orders = new ArrayList(); ] null 문제에서 안전하다. 하이버네이트는 엔.. 2021. 8. 18. 이전 1 다음