【问题标题】:Java/JPA database sequence number pool in memory内存中的 Java/JPA 数据库序列号池
【发布时间】:2012-06-12 17:45:39
【问题描述】:

在内存中实现池化序列号生成器有没有好的解决方案?

我知道 Hibernate/JPA 包含一个表生成器 id 类型,但不幸的是,由于遗留原因,我的 web 服务需要能够在实际保存对象之前在内存中分配这些 id。

是否有推荐的方法来执行此操作?我确信可能会发生许多危险的事情,关于事务回滚等等。有没有人有任何建议或资源可以解释处理此问题的最佳方法?

【问题讨论】:

  • 例如阅读Hibernate的seqhilo生成器的代码。

标签: java database memory sequence


【解决方案1】:

这很有趣,我以前从未想过。可能有帮助的一件事是使用AtomicLong,但这并不能解决回滚事务的问题。

也许一个类包装类似的东西并保留一个长值列表来保存可以从第一个检索的回滚键可以工作吗?

另一个问题是您需要从表中获取最大键值(如果您执行与我描述的类似的操作)以确保您的应用程序启动时没有重复键。

我不确定这是否有帮助,但这是一个开始的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2015-06-15
    • 2017-05-26
    • 2015-04-03
    • 2011-04-17
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多