Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 特定于应用程序的种子数据总体_Java_Hibernate_Database Design_Jpa_Jakarta Ee - Fatal编程技术网

Java 特定于应用程序的种子数据总体

Java 特定于应用程序的种子数据总体,java,hibernate,database-design,jpa,jakarta-ee,Java,Hibernate,Database Design,Jpa,Jakarta Ee,Env:JBoss(h2、MySQl、postgres)、JPA、hibernate3.3.x @Id @GeneratedValue(strategy = IDENTITY) private Integer key; 目前,我们的主键是使用上述注释创建的。我们希望支持大量用户(约百万用户),应该使用什么密钥。它应该是整数还是长的,或者我应该使用上面声明的无符号版本 我们有一个j2ee应用程序,需要在安装时填充一些种子数据。购买时,客户在应用程序顶部创建自己的数据。我们只是想确保有足够的空间为

Env:JBoss(h2、MySQl、postgres)、JPA、hibernate3.3.x

@Id
@GeneratedValue(strategy = IDENTITY)
private Integer key;
  • 目前,我们的主键是使用上述注释创建的。我们希望支持大量用户(约百万用户),应该使用什么密钥。它应该是整数还是长的,或者我应该使用上面声明的无符号版本

  • 我们有一个j2ee应用程序,需要在安装时填充一些种子数据。购买时,客户在应用程序顶部创建自己的数据。我们只是想确保有足够的空间为将来的版本发布、修改或添加数据。支持这一点的最佳机制是什么?我们已经考虑过从某个id(比如1000)启动所有表标识符,但这要求修改主键生成,使其具有基于表或序列的生成器,我们有大约100个表。我们不确定这是否是正确的策略

  • 如果我们对密钥使用有符号整数方法,那么将种子数据作为从0和以下开始的所有数据(即-ve个数字)是否有意义,这样所有客户特定的数据将在0和以上(即+ve个数字)上可用

    目前,我们的主键是使用上述注释创建的。我们希望支持大量用户(约百万用户),应该使用什么密钥。它应该是整数还是长的,或者我应该使用上述声明的无符号版本

    从Java教程的第页:

    int:
    数据类型是一个32位有符号2的补码整数。它的最小值为-2147483648,最大值为2147483647(含)。对于整数值,此数据类型通常是默认选择,除非有理由(如上所述)选择其他数据类型。此数据类型很可能足够大,足以容纳程序将使用的数字,但如果需要更大范围的值,请改用
    long

    由您决定是否安全:)

    (…)我们只是想确保有足够的空间为将来的版本发布、修改或添加数据。支持这一点的最佳机制是什么


    我将使用上述数据库对此进行测试,但对种子数据使用负ID似乎是更安全的解决方案(没有可能的冲突)。如果它不起作用(我认为应该),那么我相信表策略将是最可移植的解决方案。

    它似乎确实适用于-ve数字。可能发生冲突的情况是什么?生成的id到达2147483647后如何溢出?它是否移动到-2147483648并开始向零计数。只是想确保不会有issues@user339108:如果使用负ID,则不可能发生冲突,这就是为什么此解决方案很好的原因。关于另一个问题,我认为生成器不会移动到-2147483648(但我需要检查)。如果你想安全,可以使用长的。我不确定尺寸要求,如果可能的话,我宁愿避免使用长的