我有这样的物业物体和平面图物体
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "properties", indexes = {@Index(name = "properties_parent_id_index", columnList = "parent_id", unique = true)})
public class PropertyEntity extends BaseEntity {
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "property_id")
private List<FloorPlanEntity> floorPlans;
....
...
}
现在我尝试洗掉孩子并保存父母
像这样`
propertyEntity.getFloorPlans().clear();
propertyDataService.save(propertyEntity);
但它给出了这样的例外
引起:org.postgresql.util.PSQLException:错误:关系“floor_plans”的“property_id”列中的空值违反了非空约束
uj5u.com热心网友回复:
我认为您可以使用@OneToMany(orphanRemoval = true)
它提供了一种从数据库中洗掉孤立物体的方法。因此,当它从串列中洗掉时,它应该从数据库中洗掉 FloorPlanEntity。有一些带有解释的教程:https :
//www.baeldung.com/jpa-cascade-remove-vs-orphanremoval#orphanremoval
0 评论