gpt4 book ai didi

NHibernate 多对多表未更新

转载 作者:行者123 更新时间:2023-12-04 07:00:09 28 4
gpt4 key购买 nike

我有 3 个表,分别是“新闻”、“标签”、“新闻_标签”,带有 多对多 关系。

通过以下映射,“新闻”和“标签”表已更新,但 “新闻_标签”尚未更新。

谁能帮我?

消息:

<class name="News" table="News" lazy="false">
<id name="NewsID">
<generator class="identity" />
</id>
<property name="Title"/>
<set
name="TagsList"
table="News_Tags"
inverse="true"
lazy="false"
cascade="save-update">

<key column="NewsID" not-null="true" />
<many-to-many class="Tag" column="TagID" />
</set>
</class>

标签:
<class name="Tag" table="Tags" lazy="false">
<id name="TagID">
<generator class="identity" />
</id>
<property name="TagName"/>
<property name="DateCreated"/>

<set
name="NewsList"
table="News_Tags"
inverse="true"
lazy="false"
cascade="save-update">

<key column="TagID" not-null="true" />
<many-to-many class="News" column="NewsID" />
</set>

</class>

新闻_标签
<class name="NewsTags" table="News_Tags" lazy="false">
<id name="NewsTagID">
<generator class="identity" />
</id>
<property name="TagID"/>
<property name="NewsID"/>
</class>

非常感谢

道明。

最佳答案

在这个映射中有一些奇怪的东西。

  • 两个系列,TagsListNewsList ,是反的。所以 NHibernate 不存储它们。逆的意思是:“这个信息已经在另一个集合中,所以在存储时忽略它”。仅在双向关系的一侧放置逆。
  • NewsTags被映射为一个类,即使它不是一个类。它只是数据库中的一个表,用于映射(双向)多对多关系。只需删除此类映射。
  • 级联由两个集合设置。如果 News 引用了新标签,我不确定您是否要创建新标签。实例,但您很可能永远不想创建新的 News实例,因为它们被某个标签引用。我会在那里删除它。
  • 关于NHibernate 多对多表未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996725/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com