Хорошее время суток! У меня есть некоторые проблемы с созданием отношения «Много-ко-многим» с Hibernate. Он создает в таблицу соединения уникальное ограничение:Отношение Hibernate Many-To-Many создает ненужное уникальное ограничение
"uk_bapa98k9j6y66sqniad6k680l" UNIQUE CONSTRAINT, btree (users_id)
Так что я могу иметь только одну строку для конкретного пользователя в этой таблице, попытка вставить еще одну строку с тем же user_id вызывает ошибку:
ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - ERROR: duplicate key value violates unique constraint "uk_bapa98k9j6y66sqniad6k680l" Подробности: Key (users_id)=(1) already exists
Как могу ли я запретить Hibernate добавлять уникальное ограничение в эту таблицу?
@Entity
@Table(name="Projects", schema="public")
public class Project implements Serializable {
...
@Id
@GenericGenerator(name="increment", strategy="org.hibernate.id.IncrementGenerator")
@GeneratedValue(generator="increment")
@Column(name="project_id")
public Long getId() {
return this.id;
}
...
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name="project_users", [email protected](name="projects_id"), [email protected](name="users_id"))
@ElementCollection(targetClass=User.class)
public Set<User> getUsers()
{
return users;
}
@Entity
@Table(name="Users")
public class User implements Serializable {
...
@Id
@GenericGenerator(name="increment", strategy="org.hibernate.id.IncrementGenerator")
@GeneratedValue(generator="increment")
@Column(name="user_id")
public Long getId() {
return this.id;
}
...
@ManyToMany(mappedBy="users")
public Set<Project> getProjects()
{
return projects;
}
users.user_id имеет уникальное ограничение, и это нормально, потому что это первичный ключ. Но почему он имеет уникальную в таблице соединений? –