假设我们生活在一个人只能拥有一辆车的世界(请原谅我的蹩脚例子)
假设我有这个 UserDetails
类
public class UserDetails {
@Id
@GeneratedValue
@Column(name = "USER_ID")
private int id;
@Column(name = "USER_NAME")
private String name;
@OneToOne
private Vehicle vehicle;
public Vehicle getVehicle() {
return vehicle;
}
public void setVehicle(Vehicle vehicle) {
this.vehicle = vehicle;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
这是我的Vehicle
类
@Entity
public class Vehicle {
@Id
@GeneratedValue
private long vechile_id;
private String vehicleName;
public long getVechile_id() {
return vechile_id;
}
public void setVechile_id(long vechile_id) {
this.vechile_id = vechile_id;
}
public String getVehicleName() {
return vehicleName;
}
public void setVehicleName(String vehicleName) {
this.vehicleName = vehicleName;
}
}
将其保存到数据库后,它工作正常,但是当我删除车辆表时,此错误出现在我的工作台上
注意UserDetails
和Vehicle
表中都只有一个条目。
ERROR 1217: Cannot delete or update a parent row: a foreign key constraint fails
SQL Statement:
drop table `hibernate`.`vehicle`
为什么我不可以放下 table ?我应该先删除 UserDetails 表吗?
最佳答案
如果您删除 Vehicle 表,则会导致 UserDetails 表失去引用完整性,因为vehicle 列的外键将指向任何地方。从 UserDetails 中删除 fk 约束或车辆列,然后您可以删除所需的表。
关于java - hibernate 一对一关系: Unable to delete the child table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13642684/