gpt4 book ai didi

java - 使用 Java 从 Mongo 中的文档获取 dbref

转载 作者:可可西里 更新时间:2023-11-01 10:33:34 26 4
gpt4 key购买 nike

我无法从 Mongo 获取 dbRef 对象。在我的实体包中,我有一个 User 类继承了一个 Parent 类。这是 User 类:

public class User {

@Id
private ObjectId id;

@DBRef
private Account account;

private String name;

public String getId() {
if (id != null) {
return id.toStringMongod();
}

return null;//no id
}

public void setId(ObjectId objectId) {
this.id = objectId;
}

public Account getAccount() {
return account;
}

public void setAccount(Account account) {
this.account = account;
}
public String getLogin() {
return login;
}

public void setLogin(String login) {
this.login = login;
}
}

正如您在上面看到的,我在这里放置了一个Account 对象。我的 Parent 类只是扩展了 User:

@Document
public class Parent extends User {

@JsonProperty("is_activated")
private boolean isActivated;

public boolean isActivated() {
return isActivated;
}

public void setActivated(boolean isActivated) {
this.isActivated = isActivated;
}
}

注意:isActivated 没什么神奇的。

在我的 ParentDaoImpl 类中:

@Service
public class ParentDaoImpl extends AbstractDaoImpl implements ParentDao {

@Override
public Parent getParentByLogin(String login) {
Query query = new Query(Criteria.where("login").is(login));
return mongoOperations.findOne(query, Parent.class, "parents");
}
}

问题是如果我调用 getParentByLogin 方法,它返回 evertyning 但 Account 字段为空。也许 findOne 没有在里面给出 dbRef。我认为在关系数据库中,会有类似 join 的东西。我希望我的方法也给我 account 字段。

感谢您的帮助!

最佳答案

你能试试这样吗?

....
@Field("fieldName")
@DBRef(collection = "mongoCollectionName")
private Account account;
....

关于java - 使用 Java 从 Mongo 中的文档获取 dbref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com