繁体   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