- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 NHibernate 将实体保存到数据库的应用程序,它使用 NHibernate 的 HiLo 生成器来创建 id。我有另一个应用程序,我需要将数据保存到同一个表中,但是在这个应用程序中,我没有使用 NHibernate。有没有一种简单的方法可以在不添加对 NHibernate 和映射文件的引用的情况下使用 HiLo?
<id name="EntityId" unsaved-value="0" >
<column name="EntityId" sql-type="int" not-null="true" />
<generator class="hilo">
<param name="table">hibernate_unique_key</param>
<param name="column">next_hi</param>
<param name="max_lo">1000</param>
</generator>
</id>
更新:我创建了一个新方法来获取下一个 id,我认为它与 NHibernate HiLo 序列具有相同的行为。我没有在数据库上加任何锁,所以如果这是我插入的高频表,那可能是个问题,但对于非常低的频率,出现并发问题的可能性非常低.
/// <summary>
/// Gets the next entity id.
/// </summary>
/// <returns></returns>
public static int GetNextAvailableEntityId()
{
int max_lo = 1000;
int nextHi = DefaultContext.Database.SqlQuery<int>("select next_hi from hibernate_unique_key").Single();
int nextRangeStart = max_lo * nextHi;
int currentMax = DefaultContext.Database.SqlQuery<int>("SELECT MAX(entityid) FROM Entities").Single();
if (currentMax < nextRangeStart)
{
return currentMax + 1;
}
else
{
DefaultContext.Database.ExecuteSqlCommand("update hibernate_unique_key set next_hi = next_hi + 1");
return nextHi;
}
}
最佳答案
如有疑问,请查看 NH 的代码以确保您正确实现了它。
是这样的:
您可以为同一进程的所有事务创建一个 ID 生成器的单个实例。确保您的 ID 生成器是线程安全的。
关于c# - 没有 NHibernate 的 NHibernate Hilo 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284712/
我目前正在为我的类(class)使用 hilo id 生成器,但刚刚使用了最少的设置,例如 ... But should I really be specifyin
我使用 NHibernate HiLo 作为我的身份生成器。我目前在我的数据库中为每个实体表都有一个单独的表。例如,我有 Customer 和 CustomerKey 表,每个表都有一个 NextHi
只是想获得一些关于主键的意见 - 使用身份/序列号或使用 HiLo 策略(查询高值并增加应用程序本身的低值)会更好吗? 最佳答案 如果您使用带有大型表(> 100 万行)的 SQL Server 20
我是 hibernate 新手。我想做的是使用 @CollectionId 为我的 Address 类生成一个标识符。为此,我使用了Collection 接口(interface)。但是,当我使用 @
这与以下问题相同:HiLo or identity? 我们以本站的数据库为例。 假设该站点具有以下表格: 帖子。 投票。 注释。 使用它的最佳策略是什么: 身份 - 这是更常见的。 或者 HiLo -
我看过 Fabio Maulo 的一些文档,其中显示了以下参数: hi_value next_value 100
我尝试在 Azure SQL 中运行创建架构,但失败了,因为我使用生成的 HiLo,Azure SQL 需要聚集索引,而 HiLo 表默认没有任何索引,有人以前在 Azure 中尝试过 HiLo 吗?
我使用的数据库严重依赖于标识列。然而,由于我们现在已将所有应用程序转移到 NHibernate,我想考虑使用 HiLo,就像 NHibernate 推荐的那样。有什么策略可以做到这一点,或者有什么常见
抱歉,我知道还有其他关于此游戏的帖子,但我的问题很具体。我刚刚开始学习 Java 并组装了这个 HiLo 游戏,但我正在努力完成两件事 - 1) 如果用户想再次玩,我如何让它生成新的选择?现在如果你再
我见过这个问题 NHibernate HiLo - one table for all entities 所以我读过 http://daniel.wertheim.se/2011/03/08/nhib
我有一个关于这款 HiLo 游戏的快速问题。当我去测试它时,一切正常,除非我希望它显示他们猜测了多少次尝试。我想说的是,它不计算最初的猜测,而是计算其后的猜测,因此它显示的猜测比实际的猜测少一个。这是
我正在为学校开发一个 HILO 游戏,程序通过询问数字是高还是低来猜测用户的数字。我有代码在它猜对的地方工作,但我还需要一个案例,当用户“作弊”时,数字被猜到但用户再次选择高或低。这就是我的代码:
我正在使用 schemaExport 为我的自动测试创建一个内存数据库。我有几个 (5) 类将它们的 HiLo 标识映射到同一个数据库表,每个类使用一列。 这给了我一个表 hibernate_uniq
在我目前的设计中,我有 HiLo设置有一个 MaxLo的 1000 .这是过分了吗?我可以将这个数字减少到类似 100 之类的东西吗?还好吗? public class HiLoConvention
有一些重载: GeneratedBy.HiLo(string maxLo); GeneratedBy.HiLo(string maxLo, Action paramValues); Generated
刚刚开始使用 RavenDb,并通过工作室了解数据库中的内容。 添加非常简单的对象后我注意到的一件事是,系统记录当然包括路径中的 HILO/吗? 这个记录是什么?我认为它代表实体的标识符?那是对的吗?
刚刚开始使用 RavenDb,并通过工作室了解数据库中的内容。 添加非常简单的对象后我注意到的一件事是,系统记录当然包括路径中的 HILO/吗? 这个记录是什么?我认为它代表实体的标识符?那是对的吗?
我在没有任何 XML 的情况下通过类似的方式初始化 Hibernate org.hibernate.SessionFactory sessionFactory = new org.hibern
我有一个在 nHibernate v4.0.4.4000 上运行的应用程序 - 它在三个独立的网络服务器上运行在生产环境中。对于 ID 生成,我使用默认的 HiLo 实现(跨表的唯一 ID)。 有时,
我想使用普通 sql 将一些数据插入到一些使用 hilo id 生成与 nhibernate 结合的表中。这可能吗?我发现了一些类似的问题,但还没有明确的答案。谢谢! 克里斯 最佳答案 当然你可以做到
我是一名优秀的程序员,十分优秀!