Вы правы
Я сделал такой же подход, как показано в вашем вопросе.И действительно, Hibernate не генерирует свой составной первичный ключ, как ожидалось.
Поэтому, если вы хотите сгенерировать его составной первичный ключ, вы должны разделить свои @ManyToMany на отношения @ OneToMany- @ ManyToOne.См. здесь как ...
ОБНОВЛЕНИЕ
Если у вас двунаправленные отношения, вы должны настроить обратную сторонусвязь с помощью атрибута mappedBy
// ClassA
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="objectA_objectB",
joinColumns=
@JoinColumn(name="idObjectA", referencedColumnName="id"),
inverseJoinColumns=
@JoinColumn(name="idObjectB", referencedColumnName="id")
)
private List<ClassB> objectsB;
...
// ClassB
// You do not specify the foreign key column here (it is mapped by the other side)
@ManyToMany(mappedBy="objectsB")
List<ClassA> objectsA;
mappedBy = "objectsB" говорит
Посмотрите, содержит ли свойство objectsB в ClassA меня иесли это так, сохраните наши отношения в таблице objectA_objectB