我有两个对象: 用户和权限对象, 每个用户都有权限和权限列表也有权限列表, 意味着它的递归。 在我的mongoDB中,我只有Users集合。 我有两个权限级别的用户对象,当我试图从mongoDB获取User对象时,我只得到第一级,并且subpermission列表返回为null。
我错过了一些符号吗? THX!**结果:来自mongo
{ “的sessionId”: “管理员”, “状态”: “OK”, “username” 的: “管理员”, “权限”:[{ “名称”: “MPC”, “链接”:“#/释放“,”subPermissions“:null},{”name“:”MPC PE“,”link“:”#“,”subPermissions“:null}]}
mongo中的用户对象
{
"_id" : ObjectId("53f3731c1401dacba49cfb74"),
"userName" : "admin",
"email" : "ashoshani@ebay.com",
"sessionId" : "admin",
"permissions" : [
{
"name" : "MPC",
"link" : "#/Release",
"sub" : []
},
{
"name" : "MPC PE",
"link" : "#",
"sub" : [
{
"name" : "Validate @ Release",
"link" : "#/mpcToPeRelease",
"sub" : []
},
{
"name" : "View Report",
"link" : "#/mpcToPeReport",
"sub" : []
}
]
}
]
}
java中的用户类
@Document(collection="users")
public class User {
private String id;
private String userName;
private String email;
private String sessionId;
private ArrayList<Permission> permissions;
public String getUserName() {
return userName;
}
public String getSessionId() {
return sessionId;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public ArrayList<Permission> getPermissions() {
return permissions;
}
public void setPermissions(ArrayList<Permission> permissions) {
this.permissions = permissions;
}
}
和Java中的权限类:
@Document
public class Permission {
private String name;
private String link;
private ArrayList<Permission> subPermissions;
public String getName() {
return name;
}
public String getLink() {
return link;
}
public ArrayList<Permission> getSubPermissions() {
return subPermissions;
}
public void setName(String name) {
this.name = name;
}
public void setLink(String link) {
this.link = link;
}
public void setSubPermissions(ArrayList<Permission> subPermissions) {
this.subPermissions = subPermissions;
}
}
答案 0 :(得分:2)
不确定这是唯一的问题,但您应该使用subPermissions
注释@Field("sub")
字段,否则Spring将其映射到名为subPermissions的(不存在的)MongoDB字段。
另请注意,使用Permission
注释Document
类是多余的,因为它不是真正的第一级文档,而是子文档。无论如何,这不是一个错误。