1
7
如果这是一个关于将现有应用程序迁移到hilos的问题,hilos以前使用自动ID,并且其中包含需要迁移的旧数据…那这就是我的最佳选择(尽管没有尝试过!-欢迎评论!):
如果这只解决了标识列的问题,那么在您的模式中,如果您将应用程序移动到nhibernate,则可能需要更改任何其他内容。 |
2
14
您需要设置NH使用的表以正确创建hilo值。让Schema Creator根据映射定义创建表,根据数据库中ID的当前状态设置值。 我相信(您需要验证这一点),hilo生成的值是通过以下方式计算的:
当高值存储在数据库中时,映射文件中定义的max_low和运行时计算的低值。 NHibernate还需要自己的连接和事务来确定和增加高值。因此,如果应用程序提供了连接,它将不起作用。
你还可以用
更正: 同时,我必须自己实现它(以前,它只是理论上的-)。所以我回来分享细节。 公式是:
|
3
0
我编写了一个脚本(基于stephans answer),用于修复hilo值(在SQL Server上)-它假定您有类似hilo表的
您的表的标识列都称为id。用您要为其生成hilo值的表名初始化实体表。运行脚本将生成一系列这样的更新语句:
这里是
|
4
0
下面是一个脚本(MS SQL),它将用当前数据库中所有表的所有下一个高位数字填充hilo(name,value)表:
|
5
0
这是最近从 增量 发电机至 多导波发生器 (例如,单个表用于存储每个实体的高值)。 我的应用程序正在使用Hibernate3+映射文件(.hbm.xml)。我的数据库是mysql(innodb+auto increment pk)。 步骤1 :替换.hbm文件中的生成器设置。 替换:
通过
步骤2 :创建新表以存储高值
步骤3
:根据现有数据使用以下SQL填充初始高值。我想这里也一样
|
Juan Lozano · r中日期的seq函数工作不正常 2 年前 |
user9455316 · 从R中的具体分布减少数字生成器的序列 6 年前 |
Ast · 在sql oracle中填写序号 6 年前 |
Jaap Baanders · 统计子组中缺少的实例 6 年前 |
Andy · 基于文件的HSQLDB不跟踪序列上的调用下一个值 6 年前 |
Ruby Learner · Ruby-比较数组中的特定值/目标值 6 年前 |
Ricardo Castro · SQL Server:按序列号聚合 7 年前 |