УНИКАЛЬНЫЙ КЛЮЧ, созданный из ниоткуда

У меня есть 2 таблицы с полем @ManyToMany . В hibernate cfg у меня есть

update

Таблица, созданная при запуске приложения, имеет UNIQUE ключ, установленный в столбце PartId , который

@JoinColumn(name="PartId")}

в @ManyToMany отношение. Я нигде не установил, что этот столбец должен иметь уникальный ключ. Это поведение автоматического создания по умолчанию?

The DB is MySQL 5.5

Благодарю.

<Сильный> UPD:

Полное поле desc:

@ManyToMany
  @JoinTable(name="Part_Dev", 
    joinColumns={@JoinColumn(name="PartId")}, 
    inverseJoinColumns= {@JoinColumn(name="DevCode")})
    public List getDom() { return dom; }

UPD 2

извините, я вижу, я не упоминал об этом. Уникальный ключ в таблице Parts ,

@Entity @Table(name="Parts") 
public class Parts implements Serializable{ 

@ManyToMany 
 @JoinTable(name="Part_Dev", 
  joinColumns={@JoinColumn(name="PartId")}, 
  inverseJoinColumns= {@JoinColumn(name="DevCode")}) 
public List getDom() { 
  return dom; }

  @Column(name="PartId")
public Integer getPartId() {
  return partId; }
0
nl ja de
@JoinColumn (name = "PartId") указывает поле в «Part_Dev» и по умолчанию следует указывать его в поле первичного ключа в частях. Вы не указали идентификатор в частях или любые другие сопоставления/аннотации, которые могли бы показать, почему «PartId» в частях генерируется с помощью параметра «Уникальный ключ».
добавлено автор Chris, источник
Если PartId является pk частей, он должен быть уникальным, иначе не было бы возможности разделить разные экземпляры частей.
добавлено автор Chris, источник
Да, хотя и сам. Спасибо, Крис
добавлено автор frf, источник

2 ответы

вам нужно указать @JoinTable, чтобы это произошло. Например, если у вас есть два объекта: Employee и Project в отношениях «многие ко многим». Вам нужно иметь @JoinTable с одной стороны.

@Entity
public class Employee {
@Id private int id;
private String name;
@ManyToMany
@JoinTable(name="EMP_PROJ",
[email protected](name="EMP_ID"),
[email protected](name="PROJ_ID"))
private Collection projects;
0
добавлено
в которой таблица PartId уникальна? это первичный ключ субъекта от владения стороной отношений. он не должен быть уникальным в таблице соединений.
добавлено автор spiritwalker, источник
У меня есть код @JoinTable . Таблицы создаются и приложение развертывается ОК. Вопрос в том, почему уникальный ключ генерируется, когда я явно не просил об этом.
добавлено автор frf, источник

Итак, как сказал Крис, это способ идентифицировать каждую часть.

0
добавлено
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw