简体   繁体   English

org.hibernate.AnnotationException:从y引用x的外键具有错误的列数。 应该是n

[英]org.hibernate.AnnotationException:A Foreign key refering x from y has the wrong number of column. should be n

the following exception happens during hibernate initialisation: 在休眠初始化期间会发生以下异常:

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

我有上面截图中的表格

I have the tables as in the screenshot above. 我有上面截图中的表格。 Entity classes are written as below. 实体类的编写如下。

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
}

another one 另一个

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;
}

my item entity 我的物品实体

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;
}

How could I resolve this. 我该如何解决。 What am I missing? 我想念什么? Thank you in advance! 先感谢您!

在ER图中,item_info使用联接主键:item_id,language_item_id和类型,但是在映射中,您仅映射了item_id

Happy News :) 好消息:)

I added referencedColumnName param to JoinColumn annotation and thats working fine now ! 我在JoinColumn批注中添加了referencedColumnName参数,现在可以正常工作了!

Last Entity looking like this. 最后一个实体看起来像这样。

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;
}

Thanks Everybody. 谢谢大家。 Have a nice day. 祝你今天愉快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.hibernate.AnnotationException:从Y引用X的外键具有错误的列数。 应该是2 - org.hibernate.AnnotationException: A Foreign key refering X from Y has the wrong number of column. should be 2 org.hibernate.AnnotationException:外键引用的列数错误。 应该是2 - org.hibernate.AnnotationException: A Foreign key refering has the wrong number of column. should be 2 AnnotationException: 引用的外键列数错误。 应该是 0 - AnnotationException: A Foreign key refering has the wrong number of column. should be 0 AnnotationException:引用dayHibernate的外键…错误的列数。 应该是3 - AnnotationException: A Foreign key refering dayHibernate … wrong number of column. should be 3 外键引用的列数错误。 应该是 2 - A Foreign key refering has the wrong number of column. should be 2 Hibernate Mapping中的错误“外键引用的列数错误。 应该是2“ - Error in Hibernate Mapping “A Foreign key refering has the wrong number of column. should be 2” hibernate4:引用的外键列数错误。 应该是 2 - hibernate4: A Foreign key refering has the wrong number of column. should be 2 Hibernate:外键的列数错误。 应该是 1 - Hibernate: a foreign key has the wrong number of column. should be 1 从MainTableEntity引用MasterDataEntity的外键具有错误的列数 - A Foreign key refering MasterDataEntity from MainTableEntity has the wrong number of column 获取 org.hibernate.AnnotationException - Getting org.hibernate.AnnotationException
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM