hibernar de uno a muchos usando una tabla de unión e hibernar anotaciones

Quiero hacer una relación de uno a varios entre dos tablas usando una tabla de unión.

Por eso quiero usar una tabla de unión:

Hibernación de una a una asociación unidireccional: ¿por qué es mejor una tabla de unión?¿Por qué se recomienda evitar la asociación unidireccional de uno a muchos en una clave externa?

Finalmente, quiero usar las anotaciones de Hibernate para realizar esto.

Encontré algunos ejemplos para hacer esto usando mapeo xml pero nada con anotaciones.

Creo que así es como se deben crear las tablas.

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`)
);

Respuestas a la pregunta(1)

Su respuesta a la pregunta