我有一个实体模型,其中继承结构中的基类与另一个类有关联,并且想知道基类的子类型是否也会映射关联?
有关更多信息,请参阅以下系统的基本概要:
Transport是基类,与Owner有关联。 自行车和汽车是两个子类。
它们使用Table Per Subclass继承结构在3个具有相同名称的表中表示。 Transport表保存对Owner的外键引用。
这就是我的映射应该如何工作,我是否正确?我没有看到任何解决这个问题的事情所以我认为这对SO来说是个好问题。
<class name="Transport" table="TRANSPORT">
<id name="Id" type="Int64" column="Transport_ID">
<generator class="native"/>
</id>
<many-to-one name="Owner" column="Owner_ID" />
<joined-subclass name="Bike" table="BIKE">
<key column="Bike_ID"/>
</joined-subclass>
<joined-subclass name="Car" table="CAR">
<key column="Car_ID"/>
</joined-subclass>
</class>
答案 0 :(得分:0)
我只使用了hibernate for Java,所以某些特定的东西可能不适用于你的情况...但我认为它会非常类似。
来自超类的所有映射属性(包括关联)都可以在祖先中访问。请注意,您可以拥有未在XML中进行映射或带注释的超类 - 这些超类中的属性根本不存储在数据库中。
您可能会遇到一个问题,即共享查询(即传输类型的查询)与延迟加载相结合,在某些情况下,hibernate专门为超类型创建代理,您不能使用它来访问祖先的任何属性。否则,一切都应该像你期望的那样工作。