MongoDB映射Java POJO,不包含org.bson.types.ObjectId

我想将Java POJO映射到MongoDB并实现CRUD操作。我遵循手册https://mongodb.github.io/mongo-java-driver/3.11/driver/getting-started/quick-start-pojo/,看起来一切正常,但一个Person属性取决于MongoDB:

public final class Person {
    private ObjectId id;
    private String name;
    private int age;
    private Address address;}

这是 org.bson.types.ObjectId ID。这使我的域层依赖于MongoDB,而这实际上是我根本不称为POJO的东西。 我希望使用String或其他Java核心类(例如Long或类似的东西)代替ObjectId。它也可能是一种吸气剂/吸气剂。我该如何实现?

我试图从“人”中删除ID

package com.mongo_demo.domain;
public final class Person {
    private String name;
    private int age;
    private Address address;}

并将其用作我的域对象,而在DAO中使用MongoDB进行操作时,我将使用子类:

package com.mongo_demo.mongo_domain;
public final class Person extends com.mongo_demo.domain.Person {
    private ObjectId id;
}

很明显,我的域类现在不依赖MongoDB,但仍然缺少String id,也没有办法使用getter方法,因为ObjectId id属性位于子类中。

我不确定在服务代码中不能访问id值是否合适,因为我可能需要通过id操作调用delete,否则,除了ObjectId id属性之外,我还必须创建自己的对象唯一标识符,这将是自然键,并因此带来缺点。

PS没有显示吸气剂设置方法,因为我改用Lombok @Data批注。

lluozzi 回答:MongoDB映射Java POJO,不包含org.bson.types.ObjectId

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3122225.html

大家都在问