Java org.hibernate.AnnotationException:从y引用x的外键的列号错误。应该是n
在hibernate初始化期间发生以下异常:Java org.hibernate.AnnotationException:从y引用x的外键的列号错误。应该是n,java,hibernate,jpa,Java,Hibernate,Jpa,在hibernate初始化期间发生以下异常: org.hibernate.AnnotationException: A Foreign key refering com.maar.projectbuilder.domain.Language from com.maar.projectbuilder.domain.ItemInfo has the wrong number of column. should be 0 我有上面截图中的表格。 实体类编写如下 public class ItemI
org.hibernate.AnnotationException: A Foreign key refering com.maar.projectbuilder.domain.Language from com.maar.projectbuilder.domain.ItemInfo has the wrong number of column. should be 0
我有上面截图中的表格。
实体类编写如下
public class ItemInfo implements Serializable {
@Column(name = "name")
private String name;
@Id
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "item_id", nullable = false)
private Item itemId;
@ManyToOne(targetEntity = Language.class,cascade = CascadeType.ALL)
@JoinColumn(name = "language_item_id", nullable = false)
private Language languageItemId;
@Column(name = "type", nullable = false)
private Integer type;
//getters,setters,constructors
}
另一个
public class Language implements Serializable {
@Column(name = "isDefault")
private Integer isDefault;
@Column(name = "abbr")
private String abbr;
@Column(name = "name")
private String name;
@Id
@OneToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "item_id")
private Item itemId;
}
我的项目实体
public class Item implements Serializable {
@Column(name = "c4i")
private String c4i;
@Column(name = "status")
private Integer status=1;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
}
我怎样才能解决这个问题。我错过了什么?
提前谢谢你 在E-R图中,item\u info使用join主键:item\u id、language\u item\u id和type,但在映射中,您只映射了item\u id 我将referencedColumnNameparam添加到JoinColumn注释中,现在一切正常 最后一个实体看起来像这样
public class ItemInfo implements Serializable {
@Column(name = "name")
private String name;
@Id
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "item_id", nullable = false)
private Item itemId;
@ManyToOne
@JoinColumn(name = "language_item_id",**referencedColumnName = "item_id"**)
private Language languageItemId;
@Column(name = "type", nullable = false)
private Integer type;
}
谢谢大家。祝您有愉快的一天。语言中@OneToMany与itemInfo的关系缺失。请添加它们并重试。我已解决问题,谢谢您的帮助