0
자기를 참조하는 "카테고리"엔티티가 있습니다. |자체 참조 엔티티가 두 개의 레코드를 삽입합니다.
: 나는 부모가없는 엔티티를 저장하면
@Entity
public class Category extends NamedEntity {
private String slug;
private int position;
@ManyToOne(cascade = { CascadeType.PERSIST })
private Category parent;
@OneToMany(mappedBy = "parent")
private Set<Category> children = new HashSet<Category>();
... getters/setters ...
, 그것은 "이"기록 삽입 ID | NAME | 위치 | SLUG | PARENT_ID |
| 1 | 1 | 1 | 1 | 2 |
| 2 | null | 0 | null | null |
PARENT_ID가 null 인 "one"레코드를 삽입하려고했지만 레코드 (id = 2)와 레코드 (id = 1)를 자식으로 삽입합니다.
public interface CategoryRepository extends Repository<Category, Long> {
public Category findById(Long id) throws DataAccessException;
public Category save(Category category) throws DataAccessException;
}
계단식 옵션을 제거하면''TransientPropertyValueException'' 예외가 발생합니다. 그래서'''CascadeType.PERSIST'''를 넣었습니다. 예외 설명은'''객체가 저장되지 않은 임시 인스턴스를 참조합니다. 이전의 임시 인스턴스를 저장합니다. '' 감사합니다. – nasiajai
명시 적으로 값을 'null'로 설정하면 불평해서는 안됩니다. – Naros
나는 그 결과가 똑같다고 말하면서 유감입니다. – nasiajai