Связи вида многие-ко-многим между двумя таблицами в СУБД создаются с помощью третьей таблицы. Hibernate позволяет не создавать отдельную сущность для соединительной таблицы, а описать её в аннотации @JoinTable. У такой таблицы есть свои ограничения: она содержит только колонки со ссылками на другие таблицы и не содержит других колонок.
Читать далее