Hibernate外键约束报错解析

一.should be mapped with insert="false" updatable=false

private int book_id_fk;

@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="book_id_fk",updatable=true,insertable=true)   
public Book getBook() {
        return book;
    }

    public void setBook(Book book) {
        this.book = book;
    }
    
这样写的话就会产生上面的错误,因为重名。这是多对一中多的一方的注解

解决方法 :

@JoinColumn(name="book_id_fk",updatable=true,insertable=true)
改为
@JoinColumn(name="book_id_fk",updatable=false,insertable=false)

但是这样的话会报外键约束的错误

所以最终解决方案:

不要添加    private int book_id_fk;
@JoinColumn(name="book_id_fk",updatable=true,insertable=true)

这样的话就可以进行外键约束并且将数据同时插入两张外键关联的表了。

你可能感兴趣的:(Hibernate,外键约束)