我是Hibernate和JPA的新手,所以希望这是基本的东西。我得到了一个例外:"来自Bar的外键引用Foo的列数错误"。我不确定为什么。有任何想法吗?谢谢!
public abstract class Foo extends AbstractPersistable{
@Id @GeneratedValue
@Column(name = "FooId")
private Long foo_id;
@OneToMany(mappedBy= "foo")
private Set<Bar> bars;
}
public abstract class Bar extends AbstractPersistable{
@Id @GeneratedValue
@Column(name = "BarId")
private Long bar_id;
@ManyToOne
@JoinColumn(name = "FooId", nullable = false, insertable = false, updatable = false)
private Foo foo;
}
答案 0 :(得分:1)
在这种情况下使用@JoinColumn是多余的。试试这样的代码:
public abstract class Foo extends AbstractPersistable{
@Id @GeneratedValue
@Column(name = "FooId")
private Long foo_id;
@OneToMany(mappedBy = "foo")
private Set<Bar> bars;
}
public abstract class Bar extends AbstractPersistable{
@Id @GeneratedValue
@Column(name = "BarId")
private Long bar_id;
@ManyToOne
private Foo foo;
}
答案 1 :(得分:0)
原来我正在扩展一个已经提供了Integer id的类。我的id是Long类型,因此它正在寻找两个外键。