尝试从db中删除项目时,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;
}
UserOrder:
@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。
答案 0 :(得分:1)
如果要首先删除UserOrder对象,则需要删除此UserOrder对象与所有与其关系的Ticket对象之间的关系。所以我认为您需要使用ManyToOne注释在Ticket类中创建UserOrder对象。然后在删除对象之前将此字段设置为null,并在UserOrder类中设置票证值也为null。