Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在mongo驱动程序中重写ObjectId生成器以生成自定义ObjectId?_Java_Mongodb_Mongoid - Fatal编程技术网

Java 如何在mongo驱动程序中重写ObjectId生成器以生成自定义ObjectId?

Java 如何在mongo驱动程序中重写ObjectId生成器以生成自定义ObjectId?,java,mongodb,mongoid,Java,Mongodb,Mongoid,我们可以从客户端生成ObjectId,并在插入时使用它。我确实希望在插入过程之外处理它。我需要将其配置为默认的_id生成过程,以便每次调用insert时,insert方法都应该创建自定义objectId并使用它。mongodb的Java驱动程序可以吗 我需要以某种方式覆盖默认的id生成过程。我不喜欢在插入文档中明确定义_id。目前无法通过驱动程序直接定义 尽管有一个IdGenerator接口可用于创建自定义实现,但目前无法将该自定义实例注入驱动程序 您可以在MongoDB Java驱动程序中看到

我们可以从客户端生成ObjectId,并在插入时使用它。我确实希望在插入过程之外处理它。我需要将其配置为默认的_id生成过程,以便每次调用insert时,insert方法都应该创建自定义objectId并使用它。mongodb的Java驱动程序可以吗


我需要以某种方式覆盖默认的id生成过程。我不喜欢在插入文档中明确定义_id。

目前无法通过驱动程序直接定义

尽管有一个IdGenerator接口可用于创建自定义实现,但目前无法将该自定义实例注入驱动程序

您可以在MongoDB Java驱动程序中看到这一点

然而,有一种方法支持这一点,它被关闭为一个副本,再次被关闭为“不会修复”


不过,您应该能够以在保存任何内容之前分配自定义id的方式实现您的存储库。

可能重复@dnickless我在发布此内容之前已详细讨论了该问题。这解释了如何通过在文档中显式定义来添加自定义_id。我不喜欢在文档中明确定义。我想覆盖默认的_id生成过程,这样即使插入文档中没有定义_id,它也会使用覆盖id生成器创建一个新的_id。