我在经销商和卖家之间建立了一对一的关系,应该懒惰地使用代理。对于定义外键的一方(卖方,引用经销商),这很好用。但从另一方面来说它不起作用——卖家总是急切地加载。我按照“关于延迟加载的一些解释”constrained="true"
中的描述进行设置,但这并没有帮助。
以下是使用的映射:
<class name="Role" table="PER_PERSROLE" abstract="true">
<id column="OID" type="long">
<generator class="native" />
</id>
<discriminator column="SUBTYPE" type="string" />
</class>
<subclass name="Dealer" extends="Role" discriminator-value="DEAL">
<property name="gpNr" column="GP_NR" type="string" />
<one-to-one name="seller" property-ref="dealer" lazy="proxy" constrained="true"
outer-join="false" />
</subclass>
<subclass name="Seller" extends="Role" discriminator-value="SELL">
<many-to-one name="dealer" column="SELLER_DEALEROID" lazy="proxy"
outer-join="false" />
</subclass>
两个类都驻留在一张表中是否有问题?我看到严格来说,关系不受数据库的限制(它不能使用这个模型),但是域模型总是需要两个实体,应用程序可以确保这一点。