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

Hibernate-strategy=“increment”在表中,多个tomcat提供重复的主键

宰父志新
2023-03-14
  • 单数据库MySql
  • 多个Tomcat位于不同的位置,共享相同的代码
  • Hibernate5.2.2
  • 在桌面上
  • @GenericGenerator(name=“employee”,strategy=“increment”)
  • @GeneratedValue(generator=“employee”)

当其他服务器输入值时,出现重复主键错误

将来,我们还支持Sql Server、Oracle、HSQL

共有1个答案

何志业
2023-03-14

使用以下内容

@GeneratedValue(strategy = GenerationType.IDENTITY)

增量生成长、短或int类型的标识符,这些标识符仅在没有其他进程将数据插入同一表时才是唯一的。不要在集群中使用。

身份支持DB2、MySQL、MSSQLServer、赛贝斯和HyPERicSQL中的身份列。返回的标识符类型为long、短或int。

Sequence使用DB2、PostgreSQL、Oracle、SAP DB、McKoi中的序列或Interbase中的生成器。返回的标识符的类型为long、short或int

裁判:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-id

 类似资料:
  • null 当另一个服务器输入值时,给出重复的主键错误 今后我们还将支持Sql Server、Oracle、HSQL

  • 问题内容: 我在一个表中有多组重复项(一个表有3条记录,另一个表有2条记录,等等)-存在多于1行的多行。 以下是我想删除它们的方法,但是无论有多少重复,我都必须运行脚本: 这在一定程度上效果很好。我需要为每组重复项运行此命令,然后它只会删除1(这是我现在需要的全部)。 问题答案: 如果表上有键列,则可以使用它来唯一地标识表中的“不同”行。 只需使用子查询来标识唯一行的ID列表,然后删除此集合之外的

  • 当将多个服务器配置为复制主服务器时,使用auto_increment时应采取特殊步骤以防止键值冲突,否则插入行时多个主服务器会试图使用相同的auto_increment值。 服务器变量auto_increment_increment和auto_increment_offset可以帮助协调多主服务器复制和AUTO_INCREMENT列。每个变量有一个默认的(并且是最小的)值1,最大值为65,535。

  • 例如,如果我希望生成的ID开始为100,XXX而不是10,XXX并增加100,我将如何进行更改? 请帮个忙。提前谢了。

  • 我还在努力了解hazelcast,还得做出是否使用它的决定。 我写了一个简单的应用程序,在其中启动(单节点)服务器上的缓存,同时加载大约400个条目的映射。对象本身有两个字符串字段。我有一个服务类,它查找缓存并尝试从映射中获取所有值。 但是,当我试图从hazelcast映射中获取值时,在Java堆空间中得到了一个OutofMemoryError。最终,我们计划转移到一个5节点集群开始。 以下是缓存