【发布时间】:2016-09-26 21:16:56
【问题描述】:
我有 Exec 实体:
@Entity("Exec")
public class Exec {
@Id
private ObjectId id;
private long initDate;
private long endDate;
public enum statuses {
SUCCESS, FAIL, PARTIAL
}
private statuses status;
@Reference(idOnly = true, ignoreMissing = true, lazy = false)
Analysis analysis;
@Reference(idOnly = true, ignoreMissing = true, lazy = true)
Set<Conclusion> conclusions = new HashSet<Conclusion>();
// getters and setters
其中引用了结论实体:
@Entity("Conclusion")
public class Conclusion {
@Id
private ObjectId id;
private Map<String, Object> params = new HashMap<String, Object>();
private long initDate;
private long endDate;
public enum statuses {
SUCCESS,
FAILURE
}
private statuses status;
private String errorMessage;
private String stackTrace;
Set<Map<String, Object>> data = new HashSet<Map<String, Object>>();
在调试器中,如果我尝试得出结论
Set<Conclusions> conclusions = mongoWrapper.getDataStore().createQuery(Exec.class).asList().get(0).getConclusions()
我收到以下消息:
com.sun.jdi.InvocationException occurred invoking method.
如果我尝试访问该对象,例如,执行以下操作:
conclusions.toArray()
它抛出一个 RuntimeException,检查堆栈跟踪:
org.mongodb.morphia.mapping.MappingException: Embedded element isn't a DBObject! How can it be that is a class java.lang.String
我尝试更改一堆东西,但没有任何效果。有什么想法吗?
【问题讨论】: