为 Mongo 文档和 JPA 实体共享相同的生成 ID

Share same generated id for Mongo Document and JPA Entity

是否可以将一个对象定义为 Entity 和 Document 并且 share/use 生成的相同 id 存储在数据库中? Mongo 需要字符串作为对象 ID(可以毫无问题地生成)但在 JPA 中无法生成字符串。如果使用 Long,它可以很容易地由 JPA 生成,但不能由 Mongo 生成。有什么办法可以实现吗?

@Entity
@Document
public class DocHeader {

    @Id
    @GeneratedValue
    private Long id;
}

你可以使用uuid策略:

  @Id
        @GeneratedValue(generator = "uuid")
        @GenericGenerator(name = "uuid", strategy = "uuid" )
    private String id;

您也可以使用 guid 生成字符串 id :

 @Id
    @GeneratedValue(generator = "guid" )
    @GenericGenerator(name = "guid", strategy = "guid")
private String id;