【发布时间】:2012-02-22 12:10:21
【问题描述】:
我有以下情况:
一个目的地可以有多个别名
逻辑上:我希望 Destination 成为这种关系的所有者,因为如果没有目的地,别名就没有任何意义。
但是,数据库架构是这样的:
DestinationAlias 将 idDestination 作为外键,因此休眠注释中的 @JoinColumn 将位于 DestinationAlias 上:
目的地:
@OneToMany(fetch=FetchType.LAZY, cascade={CascadeType.ALL}, mappedBy = "mainCity")
public Set<DestinationAlias> getAliases() {
return aliases;
}
目的地别名:
@ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.ALL})
@JoinColumn(name="IDDESTINATION", nullable=false)
public Destination getMainCity() {
return mainCity;
}
根据这个定义,DestinationAlias 是这个关系的所有者,因为mappedBy 是 Destination 类的一个属性。
hibernate 是否需要我遵循database schema 并将实体标记为关系的所有者,还是可以根据Logical 的原因来完成?
【问题讨论】:
标签: java hibernate jakarta-ee hibernate-mapping