让我们说我们生活在一个人只能拥有一辆车的世界(请原谅我的蹩脚榜样)
假设我有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`
我怎么不被允许放下桌子?我应该先删除UserDetails表吗?
答案 0 :(得分:1)
如果你删除了Vehicle表,那么这将使UserDetails表失去它的参照完整性,因为车辆列的外键指向无处。从UserDetails中删除fk约束或车辆列,然后您可以删除所需的表。