hibernar um para muitos usando uma tabela de junção e anotações de hibernação

Eu quero fazer um relacionamento um-para-muitos entre duas tabelas usando uma tabela de junção.

É por isso que quero usar uma tabela de junção:

Hibernate unidirecional para muitas associações - por que uma tabela de junção é melhor?Por que é recomendável evitar a associação unidirecional um-para-muitos em uma chave estrangeira?

Por fim, quero usar as anotações do Hibernate para fazer isso.

Eu encontrei alguns exemplos para fazer isso usando o mapeamento xml, mas nada com anotações.

Eu acredito que isso seria como as tabelas precisam ser criadas

CREATE TABLE `PRODUCT` (
  `PRODUCT_ID`      BIGINT       PRIMARY KEY AUTO_INCREMENT
);

CREATE TABLE `PARTS` (
  `PART_ID`         BIGINT       PRIMARY KEY AUTO_INCREMENT
);

-- USER_IMAGE_ID must be unique if we want a one-to-many relationship between PRODUCTS & PARTS tables
CREATE TABLE `USER_DETAILS_IMAGE` (
  `PRODUCT_ID`      BIGINT,
  `PART_ID`         BIGINT UNIQUE,
  CONSTRAINT `FK_PRODUCT_ID`  FOREIGN KEY (`PRODUCT_ID`)   REFERENCES `PRODUCT`(`PRODUCT_ID`),
  CONSTRAINT `FK_PART_ID`     FOREIGN KEY (`PART_ID`)      REFERENCES `PARTS`(`PART_ID`)
);

questionAnswers(1)

yourAnswerToTheQuestion