尝试从数据库中删除项目时,hibernate 抛出异常:
Cannot delete or update a parent row: a foreign key constraint fails (`ticketer`.`UserOrder_Ticket`, CONSTRAINT `FKiyeesx6teiqckayn6agqw5b58` FOREIGN KEY (`tickets_id`) REFERENCES `Ticket` (`id`))
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
我的实体:
门票:
@Entity
public class Ticket {
@Id
@GeneratedValue
private Long id;
@OneToOne(cascade = CascadeType.ALL)
private Event event;
private String number;
private BigDecimal price;
}
用户订单:
@Entity
public class UserOrder {
@Id
@GeneratedValue
private Long id;
@OneToMany(cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.FALSE)
private List<Ticket> tickets;
@OneToOne
private User user;
private BigDecimal price;
private PaymentStatus paymentStatus;
private LocalDateTime orderDate;
}
我的数据库有连接实体的表( hibernate 标准)。 有什么可能的解决方案让它发挥作用吗?我正在使用 MySql。
最佳答案
如果你想首先删除 UserOrder 对象,你需要删除这个 UserOrder 对象和所有与其有关系的 Ticket 对象之间的关系。所以我认为你需要在 Ticket 类中使用 ManyToOne 注释创建 UserOrder 对象。然后在删除存在的对象之前将此字段设置为 null,并在 UserOrder 类中将门票值也设置为 null。
关于java - Hibernate 抛出无法删除或更新父行异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45857908/