0

Team という名前の@Entityが 1 つあります。

    @Entity
    @Table(name="projects_participants")
    public class Team {

        @Id`enter code here`
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column
        private int id;



    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }


    @Column(name="participants_id")
    private int participants_id;

    public int getParticipants_id() {
        return participants_id;
    }

    public void setParticipants_id(int participants_id) {
        this.participants_id = participants_id;
    }









    /*
    @CollectionOfElements 
    private Set<Projects> projectsParticipant;

    @ManyToMany(fetch = FetchType.LAZY,mappedBy = "team")
    public Set<Projects> getProjectsParticipant() {
        return projectsParticipant;
    }


    public void setProjectsParticipant(Set<Projects> projectsParticipant) {
        this.projectsParticipant = projectsParticipant;
    }
        */
}

別の Bean 名があるProjects like

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "projects_participants", joinColumns = { 
        @JoinColumn(name = "project_id") }, 
        inverseJoinColumns = { @JoinColumn(name = "participants_id",referencedColumnName="participants_id")})
public Set<Team> getTeam() {
    return team;
}

public void setTeam(Set<Team> team) {
    this.team = team;
}

正常に動作しますが、問題は project_participants テーブルに project_id と Team テーブルの ID があることです。しかし、Team テーブルの project_id と Employees_id が必要です。 project_participants テーブルは次のとおりです。

ここに画像の説明を入力

参加者テーブル * ここに画像の説明を入力

最後に、project_participants テーブルにproject_project_idparticipants_id ( team_id ではない) が必要です。事前に感謝します。

4

1 に答える 1

0

am:n 関係をモデル化しようとしているようですが、正しい注釈と原則を使用していないようです。

1)@ManyToManyと組み合わせて使用​​して、 jee5 api@JoinTableに記載されているような m:n 関係をモデル化します。

2) で行ったように、ID 列を介して他のオブジェクトとの関係をモデル化しないでくださいparticipants_id。JPA では、ID ではなくオブジェクトを操作するため、列はParticipant.

于 2013-02-21T08:52:53.210 に答える