2009-01-05 71 views
1

我想用NHibernate插入一些新的對象到firebird數據庫中。如何使用NHibernate和Firebird生成ID?

我得到錯誤「無法獲得一個序列值[SQL:SQL不適]」

這裏是我使用目前的映射。注意ANML_EVNT是我想要使用的生成器的名稱。

<id name="Id" column="ID" type="integer"> 
     <generator class="sequence"> 
      <param name="sequence">ANML_EVNT></param> 
     </generator> 


    </id> 

回答

4

如果你仍然在尋找答案,這裏是我已經成功地使用它。

我使用「本地」生成器,因爲當向我們的程序添加對SQL Server的支持時,我不得不更改的是生成器類型爲「native」,因爲Firebird和SQL Server實現了它們的「自動遞增身份」列不同。在火鳥它使用了名爲發生器和SQL Server忽略了「序列」參數,並使用內置的自動遞增

這裏就是我談論的例子:

<id name="Id" column="ID"> 
    <generator class="native"> 
     <param name="sequence">ANML_EVNT</param> 
    </generator> 
</id> 

隨着所有這些說,作爲gcores回答,所有似乎是錯誤的配置是額外的「>」後ANML_EVNT。

2

這看起來沒問題。問題不是ANML_EVNT之後的結束括號,對嗎?

<id name="Id" column="ID" type="integer"> 
     <generator class="sequence"> 
      <param name="sequence">ANML_EVNT</param>  
     </generator> 


</id> 
+0

我不太確定你的意思...你有另一種方式我可以嘗試的建議嗎? – tjjjohnson 2009-01-07 03:51:17

+1

在你的示例中,在ANML_EVNT @gcores已將它刪除後有一個額外的括號 – 2009-01-13 21:18:26