【发布时间】:2018-06-05 10:14:00
【问题描述】:
我用springboot+mongoDB创建了一个应用。 我有一个类 Test,它的实例变量 duration 是类“javax.xml.datatype.Duration”。 Duration 是一个抽象类。 我可以使用休息请求保存数据。但是当我使用获取请求从数据库中检索保存的数据时出现以下错误。
{
"timestamp": "2018-06-05T09:27:28.538+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Failed to instantiate com.sun.org.apache.xerces.internal.jaxp.datatype.DurationImpl using constructor NO_CONSTRUCTOR with arguments ",
"path": "/user/test"
}
我已经检查了数据库以获得 BSON 表示
{
"_id" : "Arjun",
"duration" : {
"signum" : 1,
"hours" : "2",
"minutes" : "0",
"seconds" : "0",
"_class" : "com.sun.org.apache.xerces.internal.jaxp.datatype.DurationImpl"
},
"_class" : "com.runitsimple.WebshopConnectorMangoDB3.bean.Test"
}
如您所见,mongo 被映射到 duration 类实例到 "com.sun.org.apache.xerces.internal.jaxp.datatype.DurationImpl"
它是一个默认范围类,我们将无法在包之外创建实例。
真的被问题困住了。请帮忙。
类在下面
public class Test {
@Id
private String name;
private Duration duration;
public Test() {
}
public Test(String name, Duration duration) {
this.name = name;
this.duration = duration;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Duration getDuration() {
return duration;
}
public void setDuration(Duration duration) {
this.duration = duration;
}
}
【问题讨论】:
-
持续时间使用以下工厂方法初始化。如何在 mongorepository.Duration 中映射这个 dur = DatatypeFactory.newDuration("P2DT15H45M0S");
-
任何帮助家伙。请
标签: java mongodb spring-mongodb