标签: id-generation

native和increment id生成器类型之间的区别

我们在hibernate中使用native和输入incrementid生成器之间的基本区别是什么.

因为我有一个实体,其中发电机是previuosly native,但后来改变incremental了一段时间,它正常工作.但就在昨天,当我native再次进入时,插入失败了Contraint Violation.

我在id字段中设置了索引,这是自动生成的.

我在这里错过了一些东西.

谢谢

java hibernate id-generation

5
推荐指数
1
解决办法
3740
查看次数

如何使用Spring Data JDBC插入具有自定义ID的记录

对于Spring Data JPA,我可以使用批注@GeneratedValue(strategy = GenerationType.AUTO)插入具有自定义ID的记录,但是对于Spring Data JDBC,如何插入具有自定义ID的记录?我曾尝试使用id进行插入,但没有引发任何异常,并且记录未插入表中。

java spring insert id-generation spring-data-jdbc

5
推荐指数
2
解决办法
1292
查看次数

4
推荐指数
1
解决办法
4946
查看次数

hibernate无法将ID指定为double

我尝试使用此xml为具有双数据类型的hibernate分配ID

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping >
        <class name="User" table="user">
            <id name="id" type="double"  >
                <column name="id_user" />
                <generator class="increment"  />
            </id>
            <property name="username" />
            <property name="password" />
            <property name="email" />

       </class>
    </hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)

但它给了我错误

org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.Double
    at org.hibernate.id.IdentifierGeneratorHelper.getIntegralDataTypeHolder(IdentifierGeneratorHelper.java:210) at org.hibernate.id.IdentifierGeneratorHelper.getIntegralDataTypeHolder(IdentifierGeneratorHelper.java:210)
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?或者它是一个Hibernate错误还是什么?

java hibernate id-generation

2
推荐指数
1
解决办法
841
查看次数

在 Kubernetes 中分配和维护连续的 Worker-Number 或 NodeId

当 Kubernetes Spring-Boot 应用程序启动有 8 个实例时,每个节点中运行的应用程序需要获取 pod/容器的序列号。运行同一应用程序的 Pod/容器不应有重复的数字。假设一个 Pod 运行单个容器,而一个容器仅运行应用程序的一个实例。

应用程序可以从 Kubernetes API 为每个 Pod 提取一些唯一标识符,例如:

  • MAC地址 (networkInterface.getHardwareAddress()
  • 主机名
  • 节点名称 (aks-default-12345677-3
  • targetRef.name ( my-sample-service-sandbox-54k47696e9-abcde)
  • targetRef.uid ( aa7k6278-abcd-11ef-e531-kdk8jjkkllmm)
  • IP地址 (12.34.56.78

但是从 API 获取此信息的应用程序无法在指定的 pod 范围 [0 - 最大节点计数-1] 内安全地生成并为其分配唯一的编号。任何在这些唯一标识符上运行的缩减器步骤(按位 &)最终都会重复这些数字。与其他 Pod 进行通信是一种反模式,尽管有些方法采用共识/协议模式来实现这一点。

我的问题是: Kubernetes 是否有一种简单的方法可以在创建每个节点/容器/pod 时为每个节点/容器/pod 分配一个序列号 - 可能是在 pod 中的环境变量中?这些数字可以从 0 或 1 开始,并且应该达到住宅区 pod 数量的最大计数。

背景信息和一些研究: 执行UUID.randomUUID().hashCode() & 7 八次将会重复 0 到 7 之间的数字。请参阅中存在此错误的文章createNodeId()。上述减速器步骤实际运行的示例输出。

{0=2, 1=1, 2=0, …
Run Code Online (Sandbox Code Playgroud)

distributed-system id-generation spring-boot kubernetes twitter-snowflake

2
推荐指数
1
解决办法
1362
查看次数

文档的路径对 Firestore 自动生成的随机 ID 有影响吗?

如果我想在将文档保存到 Firestore之前了解其(随机)ID (无需编写自定义代码),我可以执行以下操作:

String id = db.collection("collection-name").document().getId();
Run Code Online (Sandbox Code Playgroud)

"collection-name"如果我提供上面的代码但使用它来id将文档保存到集合中,会有什么不同吗"some-other-collection"

换句话说,集合名称(或者更一般地说,文档的路径)对 Firestore 生成的随机 ID 有任何影响吗?

Firestore ID 的生成方式是否与确保唯一标识符的 2^120 种方法中描述的类似?

以下代码对于自动生成 Firestore 文档的已知 ID 有多好:

private static SecureRandom RANDOMIZER = new SecureRandom();
.
.
.
byte[] randomId = new byte[120];
RANDOMIZER.nextBytes(randomId);
// Base64-encode randomId
Run Code Online (Sandbox Code Playgroud)

java google-app-engine id-generation google-cloud-firestore

0
推荐指数
1
解决办法
355
查看次数