Michel
Michel

Reputation: 9440

repeated column in mapping for entity by multiple mappings

I Don't understand why I'm still getting the hibernate.MappingException:

Repeated column in mapping for entity: PanelCategoryOption column: category_id (should be mapped with insert="false" update="false")

PanelCategoryOption mapping

@Entity
@Table(name = "eq_panel_category_option")
public class PanelCategoryOption {

    @EmbeddedId
    private PanelCategoryOptionId id;    
}

PanelCategoryOptionId mapping

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

}

Schema

enter image description here

Upvotes: 0

Views: 351

Answers (1)

Pooja Aggarwal
Pooja Aggarwal

Reputation: 1213

Why are you having category_id reference in PanelCategoryOption table. This is not a normalized database design as it is not fulfilling Second Normal form. Try and update your database design.

Also if you don't want to change the DB design, you need to make the following changes,

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

Upvotes: 1

Related Questions