0

SchoolClass エンティティには、schoolID、学年、およびセクションで構成される複合キーがあります。学生エンティティのキ​​ーは、userName と schoolID の複合です。SchoolClass に学生オブジェクトの 2 つの外部キーを追加しようとしています。すべてのマッピングで SchoolClass テーブルの同じ列 schoolID を使用したいのですが、これが正しい方法であるかどうか疑問に思っていますか?

@Entity
public class SchoolClass {

    @Column(unique=true, nullable=false)
    @EmbeddedId
    private SchoolClassPK key;

    @ManyToOne(optional = true)
    @JoinColumns({
        @JoinColumn(name="classRep1", referencedColumnName="userName", nullable = true),
        @JoinColumn(name="schoolID", referencedColumnName="schoolID", nullable = true),
    }) 
    private Student classRep1;

    @ManyToOne(optional = true)
    @JoinColumns({
        @JoinColumn(name="classRep2", referencedColumnName="userName", nullable = true),
        @JoinColumn(name="schoolID", referencedColumnName="schoolID", nullable = true),
    }) 
    private Student classRep2;
......
}
4

1 に答える 1

0

関連するエンティティで自動生成されたキーを優先して、単純に複合キーを削除することをお勧めします。

于 2012-10-28T10:36:35.197 に答える