두 개체가 일대 다 관계로 바인딩되어 있습니다. 그러나 한 엔티티는 다른 엔티티없이 존재할 수 있습니다. 그래서 관계는 단방향입니다. 이것으로;일대 다 단방향으로 두 테이블 간의 관계를 삭제하는 방법
@Entity
public class TransportationOrderProduct {
@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
private List<WarehousePackage> selectedWarehousePackages;
}
@Entity
public class WarehousePackage{
}
그리고 최대 절전 모드에서이 테이블을 만들었습니다.
TransportationOrderProduct
- ID
TransportationOrderProductSelectedWarehousePackages
- transportationOrderProductId
- selectedWarehousePackageId
WarehousePackage
- ID
컬렉션 (selectedWarehousePackages를) 가져 오는 모든 작동합니다. 그러나 TransportationOrderProduct.selectedWarehousePackages 목록을 지우고 새로 추가 할 때, Hibernate는 DuplicateEntry 예외를 던집니다. 운송 주문 상품 패키지 테이블에서 해당 운송 주문 상품을 두 번 삽입 할 수 없습니다.
내가 전화 할 때 Hibernate가 TransportationOrderProductSelectedWarehousePackages 테이블의 관계를 삭제하지 않기 때문이라고 생각합니다;
TransportationOrderProduct.selectedWarehousePackages.clear()
일부 항목을 추가하십시오.
TransportationOrderProduct.selectedWarehousePackages.add(newPackage)
TransportationOrderProduct.selectedWarehousePackages.add(newPackage)
.
.
누군가 도움이 될 수 있습니까?
당신의 관계는 여러 가지가 많습니까? – Mazen
하나의 운송 오더는 여러 개의 패키지를 가질 수 있지만 하나의 패키지에는 하나 이상의 운송 오더가있을 수 없습니다. 그러나 다른 한편으로는 운송 주문없이 패키지가 존재할 수 있습니다. 이 관계가 맞습니까? – paroxit
삭제 후에 flush()를 호출하십시오. –