我需要生成一个唯一的整数,用于识别外部系统的订单。我在应用程序中使用NHibernate HiLo生成器,所以我可以通过编程方式访问生成器以使其返回一个唯一的整数吗?我不需要将它存储在任何数据库密钥中。我只想使用生成唯一整数的NH功能。
我要在HiLo表中添加一列,我只用于这个唯一的数字序列而不是任何真正的数据库密钥。例如,假设我在hibernate_unique_key表中添加了一列“Foo”。
我可以做一些有效的事情:
int n = GetNextId("Foo");
我只是传递了这个列的名字?
答案 0 :(得分:1)
您应该能够实例化TableHiLoGenerator
或SequenceHiLoGenerator
,配置它并在需要值时调用Generate
。
致电Generate()
时,您可以为第一个参数传递session.GetSessionImplementation()
,为第二个参数传递null
。
现在,请记住,如果您没有真正存储这些数字,那么使用数据库生成它们可能不是最佳选择。 GUID实际上是唯一的,可以更容易地生成128位数字。