Мне нужно использовать @AttributeOverride
для объекта @Embeddable
, чтобы предотвратить конфликт имен столбцов для двух свойств одного и того же сложного типа.
Однако при этом я также теряю / переопределяю аннотацию @Enumerated
свойства networkId
объекта @Embedded
ExternalLink
.
В конце столбец link_network
таблицы имеет тип integer
вместо varyingchar(255)
.
Как настроить @AttributeOverride
для сохранения конфигурации @Enumerated
?
Вот моя схема:
@Embeddable
public class Address {
@Embedded
@AttributeOverrides({
@AttributeOverride(name="network", column=@Column(name="link_network")),
@AttributeOverride(name="networkAddress", column=@Column(name="link_network_address")),
@AttributeOverride(name="element", column=@Column(name="link_element"))
})
private ExternalLink link;
@Embedded
@AttributeOverrides({
@AttributeOverride(name="network", column=@Column(name="before_network")),
@AttributeOverride(name="networkAddress", column=@Column(name="before_network_address")),
@AttributeOverride(name="element", column=@Column(name="before_element"))
})
private ExternalLink before;
}
@Embeddable
public class ExternalLink {
@Enumerated(EnumType.STRING)
private NetworkId network;
private String networkAddress;
private String element;
}