如何从不可变标准库自动生成唯一 ID?

How to autogenerate a Unique ID from Immutables Criteria Library?

Immutables site is to switch to the new Immutables-Criteria functionality. In this sense I try to convert my project so that instead of Immutables-MongoDB it uses the Immutables-Criteria 上给出的建议。

Immutables-MongoDB provides the Id.generate() method as a Default way to auto-generate unique id for an object. There is an example here.

import org.immutables.value.Value;
import org.immutables.mongo.types.Id;

@Value.Immutable 
public abstract class ExampleMongoID{   

      // Autogenerating a id and converting it to a String
      // This is a slightly modified and simplifed version of the [example of the site][3].
      @Mongo.Id   
      @Value.Default   
      public String id() {
        return Id.generate().toString();   
     }

}

但是等效标签没有任何与generate()方法相似或等价的方法。在条件API.

中都找不到这种与ID相关的方法

在需要转换的项目中Id.generate()先于inserting/coming使用。 有什么办法可以实现从新的Immutables-CriteriaAPI调用Id.generate()的效果吗? 我更想知道基于 Immutables-Criteria 的首选方式是什么。一种解决方案可能是自动生成一个 GUID,但我想使用推荐的方法(如果有的话),这样我就可以与未来的更新更加兼容。

回到这个问题上来,我已经使用这种方法很长一段时间了,似乎效果很好。

@Value.Immutable 
public abstract class ExampleMongoID{   

  @Criteria.Id
  @Value.Default
  public String getId() {
     return java.util.UUID.randomUUID().toString();
  }

}