问题标签 [sequence-generators]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
informatica - 序列生成器中止时的行为如何?
序列生成器中止时的行为如何?
如果从序列生成器将 SL.NO 1 到 50 加载到目标表并且工作流突然中止,那么在下一次运行期间,当前值是多少?是 1 还是 51?
postgresql - 为现有的新插入值分配一个常量整数
我正在寻找一个智能序列生成器,如果表中已经存在字符串列值,它将能够为列分配一个常量 int 值。场景如下
假设我分别向 Col1 和 Col2 插入另一个值,即 ('d','a'),我希望 Col3 自动变为 '1',因为对应于 'a' 的 Col3 值已经作为 '1' 存在并变为见下文
有没有办法可以在“创建表”中定义它,以便在将值插入 Col1、Col2 时发生 Col3 值更新?
编辑 :
场景是这样的
当我添加新数据时,我希望它是
Col3 值必须是整数才能更快地与其他表连接。我将为 Col1 和 Col2 插入值,插入时对应的值应该在 Col3 中可用。
java - 如何使用 Oracle Coherence 在分布式系统上生成唯一 ID?
我有一个分布式 Java 应用程序,它使用 Oracle Coherence 进行缓存功能。如何使用它为分布式系统生成唯一的 UUID?我很确定这可以通过利用 Coherence 的缓存功能实现序列生成器来完成,如此处所示。Cassandra 有TimeBaseUUID,我正在尝试查找 Coherence 上是否有类似的东西。
hibernate - Hibernate SequenceGenerator 和 allocationSize 值设置
我遇到了休眠生成标识符的问题。我正在使用序列生成器来生成我的标识符。数据库是 Oracle 11g 和休眠版本 3.6.1。
我知道休眠中的默认分配大小是 50,因此休眠每 50 次插入调用数据库以获取标识符。因此,我将 allocationSize 更改为 1000 以减少数据库调用,如下所示:
不过问题很少。
首先,这是一项增强功能,因此我无法升级休眠版本以使用新的序列生成器。
其次,我不能使用以下属性,因为这会影响其他休眠实体,我的更改不应触及这些实体。有没有办法告诉休眠将以下属性仅应用于一个实体?
第三,我尝试了下面的hibernate特定映射。但是,我需要在这里提供一个初始值。如果不是,它将初始值为 1 并计算标识符,并且我得到预期的约束异常,因为标识符已被使用。我无法再次在此处提供初始值,因为代码已在使用中,并且序列的主要 id 和 nextval 都已从其初始值移动。
第四,我不能使用我在第一个代码块中提到的代码,因为我在插入记录时随机看到 UniqueConstraintViolationException,正如其他人所看到的那样。 JPA 2 @SequenceGenerator @GeneratedValue 产生唯一约束违规
有了所有这些限制,有什么办法可以增加 allocationSize 以提高记录插入性能。我会在一个批次中插入大约 10-4000 万条记录。
问候,五
java - JPA:ID 生成问题
我使用 OpenJPA 作为 ORM 工具。
我在坚持一个实体时遇到了一个问题。我已经使用序列生成器进行 id 生成,效果很好。但是有一种情况会导致问题。
假设表中已经有一些实体。现在我重新部署了我的应用程序并保留了一个新实体。JPA 会生成一个 id,但表中可能已经存在具有相同 id 的实体。这会导致持久性错误。所以我希望 JPA 生成的值大于表中已经存在的最高 id。
如何才能做到这一点?
hibernate - Hibernate Migration 4.x to 5.0.7.Final:框架使用 hibernate_sequence 而不是 mySequence(使用 Oracle 和 H2)
我已将休眠版本从 4.0.1.Final 更新到 5.0.7.Final(从 Jboss 7 移植到 Wildfly 10)。
问题: hibernate 框架使用 hibernate_sequence 来生成 id 而不是 mySequence。
Hibernate 配置: 为了保持向后兼容性,将 hibernate.id.new_generator_mappings 配置为 false 值。
实体配置: id 字段使用以下 JPA API 进行注释:
DB 配置: MY_GENERATOR_SEQ 序列使用“INCREMENT BY 1”选项定义。
H2 和 Oracle DB 都会出现此问题。
问题:我已经分析了实现,但我不知道它是否可能是 Hibernate 的 BUG 或我为向后兼容性所做的任何可能的错误配置???
分析: Hibernate 在服务器启动期间进行了一些初始化:SequenceStyleGenerator.configure 方法将 QualifiedName sequenceName 定义为“hibernate_sequence”,因为它试图从 Properties 参数中获取值。在这一点上,我注意到 MY_GENERATOR_SEQ sequenceName 在运行时使用“sequence”键(sequence=MY_GENERATOR_SEQ)出现在 Properties 参数中,但检索策略(determineSequenceName)需要“sequence_name”作为键。因此,用于将序列名称设置为 Properties 参数的键来自已弃用的类 org.hibernate.id.SequenceGenerator.SEQUENCE,因为 hibernate.id.new_generator_mappings=false,但 SequenceStyleGenerator 类需要 org.hibernate.id.enhanced .SequenceStyleGenerator。
潜在的解决方案:
- 设置 SequenceGenerator allocationSize=1(不设置 hibernate.id.new_generator_mappings=false)
- 使用 INCREMENT BY 50 在数据库上创建序列 MY_GENERATOR_SEQ(不设置 hibernate.id.new_generator_mappings=false)
这两种解决方案都不适用于我的上下文。所以唯一适用的“解决方案”是这个:扩展用于Oracle和H2的方言并以这种方式覆盖getNativeIdentifierGeneratorClass方法:
并使用 ah-hoc 方言在 org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter 上设置“databasePlatform”。
也提交给hibernate社区:https ://hibernate.atlassian.net/browse/HHH-10656
java - 如何使用 Hibernate 实现自定义字符串序列标识符生成器
我正在使用带有 spring、h2 和 liquibase 的 hibernate,并且我正在尝试通过以这篇博客文章为例,为我的实体制作一个自定义的 String id 生成器,但我遇到了一个错误:Caused by: org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String
这是我的 SequenceStyleGenerator 代码:
我的实体代码:
还有 liquibase XML:
顺便说一句,是否可以避免参数 sequence_name 以便休眠可以自己处理?
如果有人可以帮助我,谢谢!
java - 替换@SequenceGenerator,因为它已被弃用
我有一个问题@SequenceGenerator
:
当应用程序启动时,它会显示警告:
WARN 7388 --- [main] org.hibernate.orm.deprecation : HHH90000014: 发现使用了已弃用的 [org.hibernate.id.SequenceHiLoGenerator] 基于序列的 id 生成器;改用 org.hibernate.id.enhanced.SequenceStyleGenerator。有关详细信息,请参阅 Hibernate 域模型映射指南
我试图找出如何用新代码替换已弃用的代码,但找不到任何解决方案。
c++ - 如何找到 C 库中使用的确切 rand()?
作为我课程的一部分,我需要找到并重新编码一个 rand() 随机数生成器,它输出与原始数字相同的数字。起始顺序为 1804289383 846930886 1681692777 1714636915 1957747793 424238335 719885386 1649760492 596516649 1189641421 1025202362 可在http://H.com/生成tsSI
我的问题是我找不到这个生成器的原始来源,而且我不知道如何从生成器的完整序列(长度为 100 个数字)中找出生成器的工作方式。有人可以帮我找到原始生成器或教我如何从其序列中找到生成器吗?谢谢!
c# - 生成序列 A 到 Z,然后生成 0 到 9,从 A 到 999
在此先感谢,我想生成从 A 到 Z 的序列,然后是 0 到 9,之后它将移动到 AA、AB、AC ..... AZ、A0、A1 .... A9、BA 等等上
我曾尝试按以下方式实现它
但是 inputList.Sort() 在 Alphabets 之前对数字进行排序,所以我的代码在 Z 之后失败