У меня следующая ситуация:
Один пункт назначения может иметь несколько псевдонимов
Логически : я бы хотел, чтобы Destination был владельцем этих отношений, поскольку если бы не было места назначения, псевдоним не имел бы никакого значения.
Однако схема базы данных выглядит следующим образом:
DestinationAlias имеет idDestination в качестве внешнего ключа, и поэтому @JoinColumn в спящем аннотации будет на DestinationAlias:
Назначение:
@OneToMany(fetch=FetchType.LAZY, cascade={CascadeType.ALL}, mappedBy = "mainCity")
public Set<DestinationAlias> getAliases() {
return aliases;
}
DestinationAlias:
@ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.ALL})
@JoinColumn(name="IDDESTINATION", nullable=false)
public Destination getMainCity() {
return mainCity;
}
Из этого определения DestinationAlias является владельцем этого отношения, поскольку mappedBy
является атрибутом класса Destination.
Требует ли hibernate того, чтобы я следовал database schema
и помечал сущность как владельца отношений, или это может быть сделано по Logical
причинам?