我不明白为什么我还能拿到hibernate.MappingException
Repeated column in mapping for entity: PanelCategoryOption column: category_id (should be mapped with insert="false" update="false")
PanelCategoryOption映射
@Entity
@Table(name = "eq_panel_category_option")
public class PanelCategoryOption {
@EmbeddedId
private PanelCategoryOptionId id;
}
PanelCategoryOptionId映射
@Embeddable
public class PanelCategoryOptionId implements Serializable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "panel_id", referencedColumnName = "panel_id"),
@JoinColumn(name = "category_id", referencedColumnName = "category_id")})
private PanelCategory panelCategory;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "category_option_id", referencedColumnName = "id", insertable = false, updatable = false),
@JoinColumn(name = "category_id", referencedColumnName = "category_id", insertable = false, updatable = false)})
private CategoryOption categoryOption;
}
模式
发布于 2018-11-01 20:43:17
为什么在category_id表中有PanelCategoryOption引用。这不是规范化的数据库设计,因为它没有实现第二范式。尝试更新您的数据库设计。
另外,如果不想更改DB设计,则需要进行以下更改,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "category_option_id", referencedColumnName = "id", insertable = false, updatable = false) })
private CategoryOption categoryOption;
@JoinColumns({
@JoinColumn(name = "category_id", referencedColumnName = "category_id", insertable = false, updatable = false)})
private Category category;
https://stackoverflow.com/questions/53102838
复制