Java 嵌套类的Morphia中的ORM
我在Morphia DB中的Json文档如下所示-Java 嵌套类的Morphia中的ORM,java,mongodb,orm,inner-classes,morphia,Java,Mongodb,Orm,Inner Classes,Morphia,我在Morphia DB中的Json文档如下所示- { "_id" : ObjectId("58fcdf7e"), "status" : "ACTIVE", "user" : { "id" : NumberLong(228), "email" : "testing@domian.com" } } @Entity("member_offer") public class MemberOffer { @Id private
{
"_id" : ObjectId("58fcdf7e"),
"status" : "ACTIVE",
"user" : {
"id" : NumberLong(228),
"email" : "testing@domian.com"
}
}
@Entity("member_offer")
public class MemberOffer {
@Id
private ObjectId objectId;
@Property("status")
private String status;
@Embedded("user")
private UserDetail user;
@Embedded
class UserDetail {
@Property("id")
public long memberId;
@Property("email")
public String email;
UserDetail() {
}
}
public ObjectId getObjectId() {
return objectId;
}
public void setObjectId(ObjectId objectId) {
this.objectId = objectId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public UserDetail getUser() {
return user;
}
public void setUser(UserDetail user) {
this.user = user;
}
}
我为这个集合创建了一个Java类,如下所示-
{
"_id" : ObjectId("58fcdf7e"),
"status" : "ACTIVE",
"user" : {
"id" : NumberLong(228),
"email" : "testing@domian.com"
}
}
@Entity("member_offer")
public class MemberOffer {
@Id
private ObjectId objectId;
@Property("status")
private String status;
@Embedded("user")
private UserDetail user;
@Embedded
class UserDetail {
@Property("id")
public long memberId;
@Property("email")
public String email;
UserDetail() {
}
}
public ObjectId getObjectId() {
return objectId;
}
public void setObjectId(ObjectId objectId) {
this.objectId = objectId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public UserDetail getUser() {
return user;
}
public void setUser(UserDetail user) {
this.user = user;
}
}
现在,当我试图获取数据时,我得到了这个异常-
java.lang.RuntimeException:
org.mongodb.morphia.mapping.MappingException:没有可用的构造函数
对于vo.MemberSubscription$UserDetail
原因:org.mongodb.morphia.mapping.MappingException:无可用
vo.MemberSubscription$UserDetail的构造函数
原因:org.mongodb.morphia.mapping.MappingException:vo.MemberSubscription$UserDetail没有可用的构造函数
原因:java.lang.NoSuchMethodException:vo.MemberSubscription$UserDetail。()
你知道我如何解决这个问题吗?我只希望UserDetail是嵌套类,我知道如果我将它创建为独立类,这个错误可以解决。但我的问题是,在Morphia中是否可以实现类似的功能(嵌套类)
另外,如果我的设计中存在一些基本缺陷,请告诉我。你应该尝试为构造函数使用
public
修饰符,同时使UserDetail
(内部类)是静态的
,因为我没有足够的分数,所以我无法发表评论,我对答案有疑问。您知道是哪个更改修复了这个问题,公共修饰符还是使内部类保持静态?如果它是静态修饰符,我对Sergii的问题是,为什么这会产生不同?我们遇到了相同的问题,但只是间歇性地出现。您是否尝试对构造函数使用public
修饰符?还可以使UserDetail
astatic
@Sergii工作正常。谢谢你帮我。