JPA @ElementCollection List указывает имя столбца объединения

У меня есть следующее лицо:

@Entity
public class Shirt implements Serializable {

    @Id
    @Size(max=9)
    private String id;

    @ElementCollection
    @CollectionTable(name="SHIRT_COLORS")
    @Column(name="color")
    private List<String> colors = new ArrayList<String>();
    ...

Таблица коллекций, созданная при установке hibernate для автосоздания,

SHIRT_COLORS
 shirt_id
 color

Как я могу аннотировать свой объект, чтобы столбец объединения не был конкатенацией объекта и pk, так что созданная таблица:

SHIRT_COLORS
 id
 color

Я пробовал @JoinColumn, но это не сработало. На самом деле таблица SHIRT_COLORS в производстве управляется за пределами приложения, и имена столбцов уже определены.

Ответ 1

Попробуй это:

@Entity
public class Shirt implements Serializable {

    @Id
    @Size(max=9)
    private String id;

    @ElementCollection
    @CollectionTable(
        name = "SHIRT_COLORS",
        [email protected](name = "id", referencedColumnName = "id")
    )
    @Column(name="color")
    private List<String> colors = new ArrayList<String>();
    ...