这种架构远远早于我的时间,因此我在很大程度上只是一个维护者。
我可能正在拨错一棵树,但是我试图查看是否可以通过XML映射问题表的唯一位置来添加第三个属性以保存到数据库中的表是另一个表的XML映射中集合的一部分。
例如,在Java中,我们有:Object1
,其中包含一个Set<Object2>
。
在Object1
的hbm.xml映射文件中,(除其他事项外)我们有
<set name="object2Set" table="object_one_two">
<key>
<column name="object1_id"/>
</key>
<many-to-many column="object2_id" class="com.my.stuff.Object2"/>
</set>
下面的object_one_two
表没有自己的映射文件。纯粹通过其在Object1
的{{1}}中的存在来保存和更新。该表如下所示:
Set
现在,让我说知道谁拥有每一行变得很重要,因为每一行可以由不同的人拥有(尽管给定的集合显然将全部由同一人拥有)。我们当前要做的是从CREATE TABLE [dbo].[object_one_two](
[id] [int] IDENTITY(1,1) NOT NULL,
[object1_id] [int] NULL,
[object2_id] [int] NULL)
表中获取行,将其与object1的表(在object1的id上)连接起来,然后在object1中找到object_one_two
。但是,如果我想删除不必要的联接该怎么办?假设owner_id
表映射仅通过作为owner_id
的映射文件中的集合来定义,我是否不能直接在object_one_two
表中拥有object_one_two
?在这种情况下,这是不是的具体映射方式吗?