Hibernate "객체가 저장되지 않은 임시 인스턴스를 참조합니다" 오류 수정
Hibernate에서 "객체가 저장되지 않은 임시 인스턴스를 참조합니다" 오류가 시도할 때 발생합니다. 캐스케이딩을 제대로 지정하지 않고 저장되지 않은 관련 개체가 있는 개체를 저장하려면
원인:
이 오류는 엔터티에 아직 데이터베이스에 저장되지 않은 새 인스턴스가 포함된 컬렉션 속성이 있을 때 발생합니다. Hibernate는 상위 객체가 지속되면 이러한 새 인스턴스를 자동으로 저장하려고 시도하지만 cascade 속성이 적절하게 설정되지 않으면 실패합니다.
해결책:
이 문제를 해결하려면 , 컬렉션 매핑에 cascade 속성을 지정해야 합니다. 이는 상위 객체가 저장될 때 관련 객체를 자동으로 저장하도록 Hibernate에 지시합니다.
XML 매핑을 사용하는 경우 컬렉션 매핑에 다음을 추가합니다.
<set name="relatedObjects" inverse="true" cascade="all"> <key column="parent_id"/> <one-to-many class="RelatedObject" column="related_id"/> </set>
주석을 사용하는 경우 컬렉션 속성을 따릅니다.
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) private Set<RelatedObject> relatedObjects;
cascade=all을 지정하면 Hibernate가 상위 객체와 함께 관련 객체를 유지하도록 지시합니다. 단일 트랜잭션에서 객체를 생성합니다. 이렇게 하면 필요한 모든 개체가 데이터베이스에 저장되고 "저장되지 않은 임시 인스턴스" 오류가 방지됩니다.
위 내용은 Hibernate의 '객체가 저장되지 않은 임시 인스턴스를 참조합니다' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!