Hibernate creating redundant many-to-many tables

前端 未结 2 940
感情败类
感情败类 2021-01-03 12:53

While developing my Spring Boot application I had to drop my database and have Hibernate generate it again with hibernate.hbm2ddl.auto=update. After that I want

2条回答
  •  醉酒成梦
    2021-01-03 12:58

    If you use @OneToMany without @JoinColumn Hibernate creates a join table

    @OneToMany(fetch = FetchType.EAGER, targetEntity = Skill.class)
    @Cascade({CascadeType.DETACH})
    private Set children;
    

    change it to

    @OneToMany(fetch = FetchType.EAGER)
    @Cascade({CascadeType.DETACH})
    @JoinColumn
    private Set children;
    

    Please, don't use unnecessary mapping properties — targetEntity = Skill.class

    And I am not sure you need to use this association

    private Skill parent; 
    

    It is incorrect to associate User and Role using the @OneToMany association, because of User can have multiple roles and each role can belong to multiple users. Use @ManyToMany for such an association.

    An example of an association between User and Role

提交回复
热议问题