Таблица соединения из 3 столбцов, созданная для простых отношений ManyToMany - PullRequest
0 голосов
/ 10 мая 2011

Я использую эти объекты с JPA + Hibernate:

@Entity
public class Game {

    @Id
    @GeneratedValue
    private long id;

    @ManyToMany
    @JoinTable(name="Game_admins")
    private Set<User> admins = new HashSet<User>();

    ...

@Entity
public class User {

    @Id
    @GeneratedValue
    private long id;

    ...

Пока все работает хорошо. Hibernate создает таблицу соединения с именем Game_admins с двумя столбцами, Game_id и admins_id.

Однако, если я добавлю это к User:

@ManyToMany(mappedBy="admins")
private Set<Game> adminForGames = new HashSet<Game>();

Таблица объединения неожиданно получает три столбца, один из которых adminForGames_id. Мне это не нужно или не нужно, и я не думаю, что оно должно быть сгенерировано, поскольку я указываю mappedBy. Что я делаю не так?

1 Ответ

0 голосов
/ 10 мая 2011

Я полагаю, вам нужно установить атрибуты inverseJoin

@ManyToMany
@JoinTable(name="Game_admins", joinColumns = {
      @JoinColumn(name="admins_id")           
  },
inverseJoinColumns = {
  @JoinColumn(name="Game_id")
}
private Set<User> admins = new HashSet<User>();
...