【发布时间】:2013-03-14 16:07:01
【问题描述】:
我在Java应用程序中使用int作为PK,现在它已经达到了最大int值(20亿),即使在DB中它也可以存储比它更多的数字。但是java int只能装20亿左右。
我无法将 int 更改为 long 以与 DB 对齐。因为这是巨大的努力。
除了这个,还有人有办法吗?
【问题讨论】:
-
你已经回答了你的问题。
-
上周,同样的问题被问到了。让我看看能不能找到。
-
您是否使用了从 1 到 Integer.MAX 的所有整数?您可以重置您的自动增量以重复使用您之前使用过的数字吗?
-
您有多种选择。 1.在java中改为使用long。这是您拥有的最佳选择。 2.java中改为使用Sting作为pk值。 3. 找一份新工作,让别人改用java中的long。
-
为什么不用20亿到40亿之间的20亿值,int可以表示呢? (请注意,值 >= 2^31 在 java 中将被解释为负值,但这并不重要,只要您将它们仅用作键。)