当前位置: 首页 > 知识库问答 >
问题:

allocationSize和重复的主键问题

刘乐童
2023-03-14

Jboss 7.2.0、ejb3、oracle项目中的所有实体都定义了像@sequenceGenerator这样的序列生成器(Name=“xx”,sequenceName=“yy”allocationsize=“10”)

对于一对多关系,有时我会遇到重复主键的问题。不确定这里有什么问题,但是在事务回滚之后,序列被重置,并且我一直有约束冲突错误,我已经将allocationSize更改为1,这似乎是可以的,但原因是什么?

共有1个答案

龙永逸
2023-03-14

请参阅讨论:https://developer.jboss.org/thread/104030?start=15&tstart=0

您的问题中的序列名不清楚,是hibernate_sequence还是oracle序列?如果是甲骨文-你不应该有重复的

@Id(generate = GeneratorType.SEQUENCE, generator = "mysequence")
@SequenceGenerator(name = "mysequence", sequenceName = "MY_SEQ",allocationSize=1)
//@SequenceGenerator(name = "mysequence", sequenceName = "hibernate_sequence")
@Column(name = "COVT_ID", primaryKey=true)
public long getId() {
return m_id;
}
 类似资料:
  • 我有一些实体: 当我试图保存新的cbonus记录时,出现异常: org.postgresql.util.PSQLException: ERROR: null值在列"bank_id"的关系"cBonus"违反了非空约束详细信息:失败的行包含(773, gp3, null, null, f)。 和查询 DEBUG 24817-[nio-8080-exec-4]org . hibernate . SQL

  • 问题内容: 我在oracle的1个表中有一个复合主键。我想为第二个表中的一个表项创建一个外键,该表项引用第一个表中的复合主键。我收到错误ORA-02256。关于如何输入此内容有任何想法吗? 问题答案: 该错误是因为FOREIGN KEY是一列,但是您尝试提供两列作为父列。不需要绑定到复合键,因为它没有列… 您也有倒退的关系-使用: 我将为要来自的任何表添加一个外键约束。

  • 我有上面的错误。 首先,我试图完全理解它的意思。 下面是抛出错误的语句。

  • 问题内容: 我们都知道使用Hibernate时的默认行为-它使实际数据库序列增加 一 ,将该值乘以50(默认值)-然后将该值用作实体ID。 这是错误的行为,并与说明以下内容的规范冲突: distributionSize-(可选)从序列中分配序列号时要增加的数量。 需要明确的是:我不关心生成的ID之间的差距。 我关心与基础数据库序列 不一致的 ID 。例如:任何其他应用程序(例如,使用纯JDBC)可

  • 好的,所以我不确定这是否可能,但我需要更改一个表中的主键值,以匹配另一个表中的FK值。 我创建了一个表-POS_Transactions(FK REGISTER)并导入了它的值,然后创建了另一个表-Registers(pk Registers key)并导入了它的值。但是当我导入寄存器的值时,我遇到了一些问题,必须清除表并再次尝试多次(这就是为什么数字是从15到22的原因,它只是以这种方式自动更新

  • 问题内容: 我正在使用带有注释的Hibernate(在spring),并且我有一个对象,该对象具有有序的多对一关系,该对象的子对象具有复合主键,该子对象的一个​​组成部分是返回到该对象的外键。父对象的ID。 结构看起来像这样: 我尝试了各种注释的组合,但似乎都不起作用。这是我能想到的最接近的: 经过长时间的实验后,我得出了这一结论,在该尝试中,我进行的其他大多数尝试都产生了由于各种原因甚至无法加载