gpt4 book ai didi

java - Hibernate 抛出无法删除或更新父行异常

转载 作者:行者123 更新时间:2023-11-29 10:39:07 25 4
gpt4 key购买 nike

尝试从数据库中删除项目时,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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com