我正在使用带有 xml 映射文件的 Hibernate 3.6 版本。在我的例子中,我有三个映射实体,它们是Detector、Antenna和Location。基本上,有Detector
->Set<Antenna>
和Location
->Set<Antenna>
关系,我也希望Detector
->Set<Location>
可用。
每个检测器都有一组天线实体,映射如下:
<set name="_Antennas" table="tantenna" inverse="true" cascade="all">
<key>
<column name="id_detector" not-null="true" />
</key>
<one-to-many class="Antenna" />
</set>
每个天线也属于一个特定的位置和一个特定的探测器。这是指多对一的映射:
<many-to-one name="_Detector" class="com.tadic.model.detector.Detector"
column="id_detector" />
<many-to-one name="_Location" class="com.tadic.model.location.Location"
column="id_location" />
同样,Location也有一组 Antennas:
<set name="_Antennas" table="tantenna">
<key>
<column name="id_location" />
</key>
<one-to-many class="com.tadic.model.detector.Antenna" />
</set>
所以 Detector 知道它的 Antennas,Antennas 知道它们的 Detector 和 Location。位置实体有一组天线,但位置表没有外键。
但是,我有兴趣了解探测器在特定点的所有位置。我知道我可以编写 HQL,但我想知道在 Detector 加载时这是否可行,只需将其映射为一组 Location 实体。
记住tlocation表没有iddetector列可以与之链接,我也认为没有必要。