2011-03-16 61 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