java - hibernate 一对一关系: Unable to delete the child table

标签 java hibernate mapping one-to-one

假设我们生活在一个人只能拥有一辆车的世界(请原谅我的蹩脚例子)

假设我有这个 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;
    }   
}

将其保存到数据库后,它工作正常,但是当我删除车辆表时,此错误出现在我的工作台上

注意UserDetailsVehicle 表中都只有一个条目。

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/

相关文章:

java - Elasticsearch - 如何使用 Java 在 JSON 对象中添加或编辑字符串数组?

json - 在go中解析动态json

mapping - 使用 automapper 有什么好处?

java - 为什么 long 值小于 Long.MAX_VALUE 却是负数

java - 通用动画叠加 View 的枢轴不起作用

java - MongoDB 由 : java. sql.SQLException 引起:第 1 行的列 'scenario_order' 的数据太长

java - 数据未插入到 Spring-Hibernate-envers webapp 中的审计表中

mysql - 如何为以下用例设计表格?

java - 源模式到目标模式映射框架

java - Freemarker 模板尝试/恢复错误未记录在 freemarker.runtime.attempt 中