1

我有一个关于正确处理数据库重建的问题。

在我的开发环境中,我经常使用重新创建数据库

_schemaExport.Drop(true, true);
_schemaExport.Create(createResult, true);

(我必须注意,我使用的是hilo 生成器。)在我重新创建数据库之后,有时新实体的保存会因为" Cannot insert duplicate key..." 异常而失败。

我的问题: 我是否必须重新初始化会话工厂(甚至可能是会话)才能与新的使用 hilo 的数据库正确同步?还是让它按原样工作?

任何提示表示赞赏!


华拉巴

4

1 回答 1

1

我会说您肯定必须在重新创建数据库后创建一个新会话。另一种选择是在重新创建数据库之前清除现有的。

重新创建数据库后,ID 生成器将从头开始。这可能导致某些生成的 ID 与先前存在的会话中另一个对象的 ID 相同。因此,您会收到重复的键错误。

于 2011-05-24T12:12:38.827 回答