Hibernate-自定义联接表,带有用于多对多关系的附加列

时间:2018-08-23 12:29:46

标签: hibernate many-to-many primary-key

我可以为多对多关系创建自定义联接表。连接表由一个复合主键和一个类型为float的附加列组成。

它对我来说很好用,但现在我也想给组合键一个自己的名字。

直到生成名称。它的第一部分是MyCustomJoinTable类中的属性名称的名称,后跟一个下划线和所引用表中主键的名称。

因此,在我的情况下,名称显示为empl_enumber和proj_pronumber(如果我通过SQL Server Management Studio检查生成的表)

如何用自己的名称替换生成的主键名称?我的课看起来像这样。

@Entity
public class MyCustomJoinTable {
    // creates the composite primary key
    @EmbeddedId
    private CompositeKeyClass compositeKey;

    @ManyToOne
    @MapsId("employee_id") // maps to attribute with this name in class CompositeKeyClass
    private Employee empl;

    @ManyToOne
    @MapsId("project_id") // maps to attribute with this name in class CompositeKeyClass
    private Project proj;


    @Column(nullable=true)
    private float xyz; // additional custom column in join table

}

@Entity
public class Employee {
    // ...
    @OneToMany(mappedBy="empl") // mapps to attribute with this name in CompositeKeyClass
    private List<MyCustomJoinTable> projects;
    // ...
}

@Entity
public class Project {
    // ...
    @OneToMany(mappedBy="proj") // mapps to attribute with this name in CompositeKeyClass
    private List<MyCustomJoinTable> employees;
    // ...
} 

0 个答案:

没有答案