JPA2 [JPA] DirtyCheck vs merge 준영속(detached) 엔티티 준영속 엔티티란 준영속 상태의 엔티티로 JPA가 더는 관리하지 않는 엔티티, 즉 영속성 컨텍스트에 저장되었다가 분리된 상태인 엔티티를 말한다. 또한, DB에 한번 저장된 엔티티는 식별자가 존재하는데, 기존 식별자를 가지고 있다면 준영속 엔티티로 볼 수 있다. 준영속 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용하지 못한다. /* 준영속 상태로 만드는 방법 */ em.detach(entity); // 특정 엔티티 준영속 상태로 전환 em.clear(); // 영속성 컨텍스트 초기화 em.close(); // 영속성 컨텍스트 종료 Item item = new Item(); item.setId(id); // id가 기존 식별자라면 기존 식별자를 가진 item은 준영속 엔티티라.. 2022. 5. 15. [JPA] CascadeType.REMOVE vs orphanRemoval = true 토이프로젝트 중 CascadeType.REMOVE 와 orphanRemoval = true 가 헷갈려 둘의 차이를 찾고 정리하였다. 당시 상황은 다음과 같다. @Entity @Getter @Table(name = "orders") public class Order { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User user; @OneToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL) @Joi.. 2022. 3. 19. 이전 1 다음