Jpa 找不到OneTONE的列[id]?

Jpa 找不到OneTONE的列[id]?,jpa,model-view-controller,playframework,playframework-2.0,Jpa,Model View Controller,Playframework,Playframework 2.0,在我的迁移中,users表包含一个bigint类型的info\u id列,infos表包含一个bigint类型的user\u id列 但是,当我运行该应用程序时,它会给我[models.Info.user]上的连接带来PersistenceException:Error。在表[users]中找不到[id]的匹配外键?也许使用@JoinColumn时名称/referencedColumnName属性已交换? 有人能提供一些关于我的代码中的错误以及如何修复它的见解吗?谢谢。试试这个 用户模型 @En

在我的迁移中,
users
表包含一个bigint类型的
info\u id
列,
infos
表包含一个bigint类型的
user\u id

但是,当我运行该应用程序时,它会给我[models.Info.user]上的连接带来
PersistenceException:Error。在表[users]中找不到[id]的匹配外键?也许使用@JoinColumn时名称/referencedColumnName属性已交换?

有人能提供一些关于我的代码中的错误以及如何修复它的见解吗?谢谢。

试试这个

用户模型

@Entity
@Table(name = "users")
public class User extends Model
{
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "id")
  public Long id;

  @OneToOne(mappedBy= "user", cascade = {CascadeType.ALL})
  @JoinColumn(name="info_id",referencedColumnName = "id")
  public Info info;
}

@Entity
@Table(name="infos")
public class Info extends Model
{
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "id")
  public Long id;

  @OneToOne(mappedBy="info",cascade = {CascadeType.ALL})
  @JoinColumn(name="user_id", referencedColumnName = "id")
  public User user;
}
  @OneToOne
  @JoinColumn(name="info_id")
  public Info info;
信息模型

@Entity
@Table(name = "users")
public class User extends Model
{
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "id")
  public Long id;

  @OneToOne(mappedBy= "user", cascade = {CascadeType.ALL})
  @JoinColumn(name="info_id",referencedColumnName = "id")
  public Info info;
}

@Entity
@Table(name="infos")
public class Info extends Model
{
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "id")
  public Long id;

  @OneToOne(mappedBy="info",cascade = {CascadeType.ALL})
  @JoinColumn(name="user_id", referencedColumnName = "id")
  public User user;
}
  @OneToOne
  @JoinColumn(name="info_id")
  public Info info;

您不应该将
mappedBy
JoinColumn
一起使用。查看差异。

您能发布这两个表的模式吗?删除两个实体中的mappedBy否不要删除两个实体中的mappedBy;将其从一侧拆下。它用于将关系标记为双向关系,并且仅放在非所有者侧。