首页 > 解决方案 > 使用 System.currentTimeMillis() 作为休眠表中的主键

问题描述

我正在开发应用程序,我想在表中使用唯一的非空数字作为主键。我不想在这个应用程序中使用自动生成的值。

因此我使用 System.currentTimeMillis(); 作为主键..这是正确的方法吗???

代码看起来像这样

FileData fileData = new FileData();
    Long seqnum = System.currentTimeMillis();
fileData.setSeqnum(seqnum);
. setting other fields
.
.
fileRepository.save(fileData);

我担心的是,如果我在服务器上部署代码,很有可能同时两个请求可能会到达服务器,并且服务器为请求创建的两个线程可能会相同seqnum

如果我的方法正确与否,有人可以建议我吗?如果不正确,请建议另一种方法?

标签: hibernatespring-data-jpa

解决方案


推荐阅读