我有表,其中2列加入另一个关系。我尝试加入@JoinColumns
,但收到错误Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to find column with logical name CLASS_ID in table item_sub_class
我查看了h2-console,在table_sub_class表中,我看到了列class_id。看截图
这是来自Item class
的关系代码@Entity
@JsonIgnoreProperties(ignoreUnknown = true)
public class Item implements Serializable {
@Id
private Long id;
private String description;
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "class_id")
private ItemClass itemClass;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name= "subclass_id",referencedColumnName = "subclass"),
@JoinColumn(name= "class_id",referencedColumnName = "class_id")
})
private ItemSubClass itemSubClass;
private Long sellPrice;
//getter and setters
}
和ItemSubClass
@Entity
public class ItemSubClass implements Serializable {
@Id
@GeneratedValue
private Long id;
@JsonProperty("subclass")
@Column(name = "subclass")
private Long subclass;
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "class_id")
private ItemClass itemClass;
//getters and setters
}
有人可以解释什么是坏的以及为什么这种关系会让我犯错误?这有可能解决这个问题吗?