Cascade

· JPA
고아 객체 제거 JPA는 부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제하는 기능을 제공하는데 이것을 고아 객체(ORPHAN) 제거라 한다. 이 기능을 사용해서 부모 엔티티의 컬렉션에서 자식 엔티티의 참조만 제거하면 자식 엔티티가 자동으로 삭제한다. @Entiry public class Parent { @Id @GeneratedValue private long id; @OneToMany(mappedBy = "parent", orphanRemoval = true) private List childs; } Parent parent = em.find(Parent.class, id); parent.getChilds().remove(0); // 실제 데이터베이스에서 삭제 orphanRemoval = ..
· JPA
특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶으면 영속성 전이 기능을 사용하면 된다. 쉽게 말해서 영속성 전이를 사용하면 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장할 수 있다. JPA는 CASCADE 옵션으로 영속성 전이를 제공한다. @Entity @NoArgsConstructor public class Parent { @Id ... @OneToMany(mappedBy = "parent", cascade = {CascadeType.PERSIST , CascadeType.REMOVE}) // 영속성 전이 private List childrens = new ArrayList(); public void addChild(Child child) { // Child 추가 t..
· JPA
아래 자주 쓰이는 기본적인 객체 관계 매핑 어노테이션을 정리해보았다. @JoinColumn 외래 키를 매핑할 때 사용한다. 속성 기능 기본값(Default) name 매핑할 외래 키 이름 필드명 + _ + 참조하는 테이블의 기본 키 컬럼 referencedColumnName 외래 키가 참조하는 대상 테이블의 컬럼명 참조하는 테이블의 기본 키 컬럼명 foreignKye(DDL) 외래 키 졔약조건을 직접 지정할 수 있다. 이 속성은 테이블을 생성할 때만 사용한다. unique nulldable insertable updatable columnDefinition table @Column의 속성과 같다 class Member { @ManyToOne @JoinColumn(name = "team_id", refer..
beekei
'Cascade' 태그의 글 목록