변경 감지와 병합
·
Programming/JPA
준영속 엔티티란? - 영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말한다. - DB에 한번 저장 되어서 식별자가 존재한다. - 임의로 만들어낸 엔티티도 기존 식별자(id)를 가지고 있으면 준영속 엔티티로 볼 수 있다. 준영속 엔티티를 수정하는 방법 2가지 - 변경 감지(Dirty Checking) 기능 사용 - 병합(merge) 사용 변경 감지 기능 사용 @Transactional void update(Item itemParam) { //itemParam: 파리미터로 넘어온 준영속 상태의 엔티티 Item findItem = em.find(Item.class, itemParam.getId()); //같은 엔티티를 조회한다. findItem.setPrice(itemParam.getPrice()); //데이..
@OneToOne에서 Fetch 전략을 Lazy로 설정했을때 발생하는 이슈
·
Programming/JPA
@Entity @Getter @Setter @NoArgsConstructor public class SubProject extends Timestamped { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) private ToyProject toyProject; @Column private String title; @OneToOne(mappedBy ="subProject", fetch = FetchType.LAZY, orphanRemoval = true) private KanbanBoard kanbanBoard; @OneToMany(mappedBy = "subP..