我有一个名为 Stat 的表,另一个名为 Request 的表,在请求表中我要归因于: Old_Stat 和 New_Stat ,它们都引用到同一表Stat中。 但是,当使用Hibernate在两个表之间建立关系时,我不知道如何对Hibernate说这两个属性是同一表Stat上的外键。 希望有人可以帮助我修复此问题。
这是我的代码主张:
@Entity
public class Request implements Serializable{
@Id @GeneratedValue
private Integer Request_id;
.....
@ManyToOne
@JoinColumn(name = "stat_id")
private Stat stat_new;
@ManyToOne
@JoinColumn(name = "stat_id")
private Stat stat_old;
}
/** in The Stat Class **/
@Entity
public class Stat implements Serializable{
@Id @GeneratedValue
private Integer stat_id;
.....
@OneToMany(mappedBy = "stat_old",fetch = FetchType.LAZY)
private Collection<Request> requests;
@OneToMany(mappedBy = "stat_new",fetch = FetchType.LAZY)
private Collection<Request> requestss;
}
答案 0 :(得分:1)
那是因为您尝试加入stat_id
实体中的Request
列,并且该列不存在。即使这样做,如果没有updateable=false
和insertable=false
,您也无法两次加入该列。
这很有可能会解决您的问题。
@ManyToOne
@JoinColumn(name = "stat_new", referencedColumnName= "stat_id")
private Stat stat_new;
@ManyToOne
@JoinColumn(name = "stat_old", referencedColumnName= "stat_id")
private Stat stat_old;