簡體   English   中英

Hibernate + MySQL-如何獲得無法猜測的生成ID?

[英]Hibernate + MySQL - How can I get not guessable generated ID?

如何獲得難以猜測的實體ID(主鍵)?

理想的是8或16位隨機唯一數字或字符串。

我嘗試了UUID,但由於報告了bug( https://github.com/h2database/h2database/issues/345 ),H2測試失敗。

或者,如果使用ID很難...如何在創建時使用隨機唯一編號自動生成另一列?

對於外部API,我需要每位用戶一個隨機且難以猜測的唯一ID。

感謝您的任何建議。 :)

您可以使用@PrePersist批注將值分配給另一列。 就像是:

public class MyClass  {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    protected T id;

    @Column
    protected String clientKey;

    @PrePersist
    public void ensureClientKeyGenerated() {
          this.clientKey = UUID.randomUUID();  
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM