NHibernate +多对多包 +映射表

发布于 2024-12-01 00:21:58 字数 1717 浏览 0 评论 0原文

我有以下3节课。

BusinessStream
Scheme
Bus_Stream_Scheme_Map

当我尝试执行 transaction.Commit() 方法时,在 BusinessStreamsession.SaveOrUpdate() 之后,出现以下错误,

无法插入 NULL进入(“DBO”。“BUS_STREAM_SCHEME_MAP”。“BUS_STREAM_SCHEME_MAP_ID”)

HBM 文件,

BusienssStream

<class name="BusinessStream" table="BUS_STREAM">
<id name="Id" column="BS_ID" type="Int32" >
  <generator class="sequence">
    <param name="sequence">BUS_STREAM_SEQ</param>
  </generator>
</id>
<property name="Name" column="Name" type="String"/>
<property name="Description" column="Description" type="String"/>
<bag name="Schemes" table="BUS_STREAM_SCHEME_MAP" lazy="false">
  <key column="BUS_STREAM_ID"></key>
  <many-to-many class="Scheme" column="SCHEME_ID"></many-to-many>
</bag>

</class>

方案

<class name="Scheme" table="SCHEME_DEF">
    <id name="Id">
     <column name="SCHEME_ID"/>
     <generator class="native">
          <param name="sequence">SCHEME_DEF_SEQ</param>
     </generator>
</id>
    <property name="Description" column="SCHEME_DESC" type="String"/>
</class>

BusinessStream_Scheme_Map

<class name="BusinessStreamSchemeMapping" table="BUS_STREAM_SCHEME_MAP">
<id name="Id">
  <column name="BUS_STREAM_SCHEME_MAP_ID"/>
  <generator class="native">
    <param name="sequence">BUS_STREAM_SCHEME_MAP_SEQ</param>
  </generator>
</id>
</class>

我做错了什么?

I have following 3 classes.

BusinessStream
Scheme
Bus_Stream_Scheme_Map

When I try to execute transaction.Commit() method, after session.SaveOrUpdate() for BusinessStream, I get following error,

cannot insert NULL into ("DBO"."BUS_STREAM_SCHEME_MAP"."BUS_STREAM_SCHEME_MAP_ID")

HBM Files,

BusienssStream

<class name="BusinessStream" table="BUS_STREAM">
<id name="Id" column="BS_ID" type="Int32" >
  <generator class="sequence">
    <param name="sequence">BUS_STREAM_SEQ</param>
  </generator>
</id>
<property name="Name" column="Name" type="String"/>
<property name="Description" column="Description" type="String"/>
<bag name="Schemes" table="BUS_STREAM_SCHEME_MAP" lazy="false">
  <key column="BUS_STREAM_ID"></key>
  <many-to-many class="Scheme" column="SCHEME_ID"></many-to-many>
</bag>

</class>

Scheme

<class name="Scheme" table="SCHEME_DEF">
    <id name="Id">
     <column name="SCHEME_ID"/>
     <generator class="native">
          <param name="sequence">SCHEME_DEF_SEQ</param>
     </generator>
</id>
    <property name="Description" column="SCHEME_DESC" type="String"/>
</class>

BusinessStream_Scheme_Map

<class name="BusinessStreamSchemeMapping" table="BUS_STREAM_SCHEME_MAP">
<id name="Id">
  <column name="BUS_STREAM_SCHEME_MAP_ID"/>
  <generator class="native">
    <param name="sequence">BUS_STREAM_SCHEME_MAP_SEQ</param>
  </generator>
</id>
</class>

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浊酒尽余欢 2024-12-08 00:21:58

这只是一个猜测,但是如果您将 BUS_STREAM_SCHEME_MAP_ID 设置为自动递增字段,它会起作用吗?

This is just a guess, but would it work if you set BUS_STREAM_SCHEME_MAP_ID to be an auto-incrementing field?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文