0

I have 2 tables. The second table contains two FK to the first one (the meaning is that user can have a team of other users).

CREATE TABLE "user" (
                usr_id INTEGER PRIMARY KEY,
                usr_login VARCHAR NOT NULL UNIQUE,
);

CREATE TABLE user_team (
        utm_id INTEGER PRIMARY KEY,
        usr_id INTEGER NOT NULL UNIQUE,
        manager_id INTEGER NOT NULL,
        CONSTRAINT utm_usr_fk FOREIGN KEY (usr_id)
                REFERENCES "user" (usr_id) ON DELETE CASCADE,
        CONSTRAINT utm_manager_fk FOREIGN KEY (manager_id)
                REFERENCES "user" (usr_id)  ON DELETE CASCADE
);

Can I write some annotation mapping in User class to have set of users (team)? For example:

@Entity
@Table(name = "user")
public class User implements Serializable {
    @OneToMany ??????????????????????
    private List<User> team;
}
irko
  • 11
  • 2

1 Answers1

1
@JoinTable(name = "user_team", joinColumns = { @JoinColumn(name = "usr_id") }, inverseJoinColumns = { @JoinColumn(name = "manager_id") })

But user_team will be without utm_id column. Is it critical?

dic19
  • 17,821
  • 6
  • 40
  • 69
vrnRoman
  • 39
  • 2
  • I tried to change the place of usr_id and manager_id. After that it worked once, but now the list is empty. I don't know what is the problem. @JoinTable(name = "user_team", joinColumns = { @JoinColumn(name = "usr_id") }, inverseJoinColumns = { @JoinColumn(name = "manager_id") }) – irko Feb 14 '14 at 08:32
  • This is works for me: @JoinTable(name = "user_team", joinColumns = { @JoinColumn(name = "manager_id") }, inverseJoinColumns = { @JoinColumn(name = "usr_id") }) – irko Feb 14 '14 at 09:38