不使用数据库生成主键

问题描述 投票:5回答:10

[我最近遇到了一个问题,即“在不使用数据库的情况下在5个App-Server的集群环境中生成主键-[OAS版本10]”。]

通常,我们通过数据库序列生成PK,或者将值存储在数据库表中,然后使用SP生成新的PK值...但是,当前的要求是为我的应用程序生成主键,而无需使用JDK引用数据库1.4。

需要专家的帮助以找到更好的方法来解决此问题。

谢谢,

[我最近遇到了一个问题,即“在不使用数据库的情况下在5个App-Server的集群环境中生成主键-[OAS版本10]”。通常我们通过数据库序列生成PK,...

java database oracle primary-key
10个回答
8
投票

UUID用作主键,将generate用作客户端。


0
投票
它在许多

基于Spring的


3
投票

您可能会发现查找UUID生成很有帮助。


2
投票

如果无法使用数据库全部


2
投票
您应该考虑使用UUID形式的ID。 Java5有一个class来表示它们(还必须有一个工厂来生成它们)。使用此工厂类,您可以将代码反向移植到旧的Java 1.4中,以便获得所需的标识符。

2
投票
查看Hibernate使用的these strategies(链接中的5.1.5节)。您一定会发现它很有用。它解释了几种方法,其优缺点,还说明了它们在集群环境中是否安全。

0
投票
如果适合您的应用程序,则可以使用更大的字符串键以及UUID()函数或SHA1(随机数据)。

0
投票
您可以基于以下三件事的组合来生成密钥

0
投票
通过使用Statement Object,您可以调用statement.getGeneratedKeys();一种方法,用于检索通过执行此Statement对象而生成的自动生成的键。

0
投票
这是在MongoDB中的处理方式:http://www.mongodb.org/display/DOCS/Object+IDs
© www.soinside.com 2019 - 2024. All rights reserved.