Hibernate-外键引用了错误的列数(一对多,多对一)

Hibernate-外键引用了错误的列数(一对多,多对一),hibernate,jpa,spring-data,Hibernate,Jpa,Spring Data,我不熟悉Hibernate和JPA,所以希望这是一些基本的东西。我得到了一个例外:“从Bar引用Foo的外键的列数错误”。我不知道为什么。有什么想法吗?谢谢 public abstract class Foo extends AbstractPersistable{ @Id @GeneratedValue @Column(name = "FooId") private Long foo_id; @OneToMany(mappedBy= "foo") p

我不熟悉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;
}
公共抽象类Foo扩展了AbstractPersistable{
@Id@GeneratedValue
@列(name=“FooId”)
私人长富id;
@OneToMany(mappedBy=“foo”)
私人酒吧;
}
公共抽象类栏扩展了AbstractPersistable{
@Id@GeneratedValue
@列(name=“BarId”)
私人长酒吧id;
@许多酮
@JoinColumn(name=“FooId”,nullable=false,insertable=false,updateable=false)
私人富福;
}

在这种情况下使用@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;
}
公共抽象类Foo扩展了AbstractPersistable{
@Id@GeneratedValue
@列(name=“FooId”)
私人长富id;
@OneToMany(mappedBy=“foo”)
私人酒吧;
}
公共抽象类栏扩展了AbstractPersistable{
@Id@GeneratedValue
@列(name=“BarId”)
私人长酒吧id;
@许多酮
私人富福;
}

发现我在扩展一个已经提供了整数id的类。我的id类型为Long,因此它在寻找两个外键。

尝试使用
private Foo Foo
not
foos
as
mappedBy
被定义为
foo
。实际上,这是一个打字错误。这就是我所拥有的。嗯,谢谢,但我只是在看这些文档。不知道发生了什么事。