2011-03-16 42 views
0

,我可能會問:可能是一個相當微不足道的問題,但仍要求別人解釋我下面的代碼之間的differnce:使用<param>在<generator> NHibernate的

<id name="Key" column="Date_Interval_Key" type="long" > 
    <generator class="sequence" > 
    <param name="sequence">SEQ_DATE_INTERVAL</param> 
    </generator> 
</id> 

和類似的代碼,但我們不使用param標籤。我似乎無法理解的是,SEQ_DATE_INTERVAL指的是什麼?在互聯網上搜索我發現:

如果任何參數都需要 配置或初始化發電機 情況下,他們使用的是 param元素通過。

但有人可以解釋我這是從我的代碼中傳遞的這個SEQ_DATE_INTERVAL(或其值)嗎?這有用嗎?還是我可以繼續使用標籤?

回答

1

param指示NHibernate使用(可能)Oracle序列來獲取該實體的Id值。如果你沒有指定param,那麼NHibernate將使用一個通用的名字,名字爲Hibernate_Sequence

+0

感謝您的回答。我從你的回答中推斷出,我們實際上可以跳過上面示例代碼中提到的param,然後繼續。另外我很好奇我們是否可以在NHibernate查詢的其他地方聲明這個參數? – 2011-03-16 17:09:25

+0

@tahoka你可以跳過參數,但是如果你使用的是Oracle序列,你可能需要爲每個表/類設置一個序列。你想用這個參數做什麼? NHibernate會自動獲得序列的下一個值。 – rebelliard 2011-03-16 17:44:49

+0

再次感謝。 – 2011-03-17 04:19:11