无法在 Spring Boot 中反序列化嵌套对象“Role”

我是 Spring Boot 的新手。尝试从具有相关角色的员工集合中获取所有文档。当尝试使用“findAll()”方法从 mongo 存储库中获取所有员工文档时,我得到空角色,如下面的输出所示。

Note : Roles are associated with each employee in MongoDB.

http://img4.mukewang.com/62c553e70001ef6505880382.jpg

REST 调用的输出

[

    {

        "id": 0,

        "name": null,

        "organization": null,

        "email": null,

        "password": null,

        "roles": null,

        "enabled": false,

        "skills": null

    },

    {

        "id": 123,

        "name": "Harry",

        "organization": "Hollywood",

        "email": "harry@demo.com",

        "password": "HarryMovie",

        "roles": [],

        "enabled": true,

        "skills": [

            "Performer",

            "Entertainer",

            "Actor",

            "Producer"

        ]

    },

    {

        "id": 1902,

        "name": "Harry",

        "organization": "Hollywood",

        "email": "harry@demo.com",

        "password": "HarryMovie",

        "roles": [],

        "enabled": true,

        "skills": [

            "Performer",

            "Entertainer",

            "Actor",

            "Producer"

        ]

    }

]

员工类

package com.app.TestSecurityApp.Pojo;


import org.springframework.data.annotation.Id;

import org.springframework.data.mongodb.core.mapping.DBRef;

import org.springframework.data.mongodb.core.mapping.Document;


import java.io.Serializable;

import java.util.List;

import java.util.Set;


@Document(collection="employee")

public class Employee implements Serializable {


    @Id

    private int id;

    private String name;

    private String organization;

    private String email;

    private String password;

    @DBRef

    private List<Role> roles;

    private boolean enabled;

    private List <String> skills;




    public Employee() {

    }



    public List <Role> getRoles() {

        return roles;

    }


    public void setRoles(List <Role> roles) {

        this.roles = roles;

    }


    public boolean isEnabled() {

        return enabled;

    }


    public void setEnabled(boolean enabled) {

        this.enabled = enabled;

    }


慕容森
浏览 113回答 1
1回答

九州编程

它没有正确序列化,因为它没有实现标记接口。更改public class Role为public class Role implements Serializable。也不需要@DBRef,它用于将父级和子级作为单独的文档与引用一起存储在数据库中。向所有类添加序列化,使文档嵌入。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java