【问题标题】:Cannot delete or update a parent row: a foreign key constraint fails (jpa 2.0)无法删除或更新父行:外键约束失败 (jpa 2.0)
【发布时间】:2016-05-08 13:49:01
【问题描述】:

当我尝试从数据库中删除一行时,我收到以下错误消息:“无法删除或更新父行:外键约束失败 (pquino01db.ITINERARYTRAVELLER_FLIGHTENTITY, CONSTRAINT FK_ITINERARYTRAVELLER_FLIGHTENTITY_flights_ID FOREIGN KEY ( flights_ID) 参考FLIGHTENTITY (ID))"

@Entity
public class itineraryTraveller implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String departureLocation;
@Temporal(javax.persistence.TemporalType.DATE)
private Date departureDate;
private String arrivalLocation;
private double cost;
private char status;
private ArrayList<String> stops;
@OneToMany(orphanRemoval=true)
private ArrayList<flightEntity> flights;
private String stopPrint;
private String userName;
private int iden;
public String getUserName() {
    return userName;
}
........

有人能看出问题吗???我认为我的 @OneToMany 注释可能遗漏了一些东西,但不知道是什么

【问题讨论】:

    标签: jpa


    【解决方案1】:

    试试这个:

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "flightID", orphanRemoval = true)
    private ArrayList<flightEntity> flights;
    

    “flightID”必须等于fligtEntity的实体id的变量名。

    关于 mappedBy 这里的文档Bidirectional Relationships

    您可以在这里看到 CascadeType.ALL 的含义Cascade Operations and Relationships

    【讨论】:

    • 但我想要单向的。一个 itineraryTraveller 将包含一个航班列表。如果我从航班表中删除一个航班,我希望自动删除包含该航班的所有 itineraryTravellers
    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2019-05-25
    • 2014-11-11
    • 2018-05-12
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多