我希望在SpringDataMongoDB持久层中使用数字序列作为ID。如何配置此行为?

我希望在SpringDataMongoDB持久层中使用数字序列作为ID。如何配置此行为?,spring,mongodb,spring-data,Spring,Mongodb,Spring Data,具有BigInteger ID的MongoDB的Spring数据仍在生成字母数字对象。我想把数字序列作为ID。如何配置此行为?根据springdata文档: Java类中声明为BigInteger的id属性或字段将使用Spring转换器转换为ObjectId并存储为ObjectId 你到底想代表什么? 如果只是一个大数字,使用长值将能够表示64位数字。 如果您需要表示大于64位的值,那么它们必须在mongo中表示为字符串或BinData,但不能表示为ObjectId,因为这是一个固定的12字节。

具有BigInteger ID的MongoDB的Spring数据仍在生成字母数字对象。我想把数字序列作为ID。如何配置此行为?

根据springdata文档: Java类中声明为BigInteger的id属性或字段将使用Spring转换器转换为ObjectId并存储为ObjectId

你到底想代表什么? 如果只是一个大数字,使用长值将能够表示64位数字。
如果您需要表示大于64位的值,那么它们必须在mongo中表示为字符串或BinData,但不能表示为ObjectId,因为这是一个固定的12字节。

Spring Data MongoDB会尝试转换所有可能构成
ObjectId
s的类型,正如推荐的那样。正如MongoDB中所描述的,这是因为它们允许在集群上创建稳定增长的ID。如果您确实需要线性ID(1,2,3…不仅仅是稳步增加的ID),请使用
Long
类型并手动创建ID。

我依靠Spring为自己生成ID。我告诉它为BigInteger类型生成ID,但它一直在生成对象ID。我该如何解决这个问题?