NHibernate + многие ко многим + сумка + картографический стол - PullRequest
0 голосов
/ 22 августа 2011

У меня есть следующие 3 класса.

BusinessStream
Scheme
Bus_Stream_Scheme_Map

Когда я пытаюсь выполнить метод transaction.Commit(), после session.SaveOrUpdate() для BusinessStream я получаю следующую ошибку,

не может вставить 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>

Что я делаю не так?

1 Ответ

0 голосов
/ 22 августа 2011

Это всего лишь предположение, но сработает ли это, если вы установите BUS_STREAM_SCHEME_MAP_ID в поле с автоинкрементом?

...