使用mongoDB返回null的id值

时间:2015-06-10 16:52:29

标签: java mongodb

添加了

@MongoObjectId注释以在数据库中作为ObjectId插入,但是当我获得此集合中包含的所有数据时,返回null id。但是ids是,它们的值不为空
如何正确获取ID?

我的实体

import org.jongo.marshall.jackson.oid.MongoObjectId;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Instancia implements Serializable {

    @MongoObjectId
    String id;
    String instancia;
    String categoria;
    String dono;
    String data_criacao;
    String descricao;
    Boolean ativo;
    Map<String, Boolean> servicos;

    public String getId() {
        return this.id;
    }

    public Instancia setId(String id) {
        this.id = id;
        return this;
    }

    public String getInstancia() {
        return this.instancia;
    }

    public Instancia setInstancia(String instancia) {
        this.instancia = instancia;
        return this;
    }

    public String getCategoria() {
        return this.categoria;
    }

    public Instancia setCategoria(String categoria) {
        this.categoria = categoria;
        return this;
    }

    public String getDono() {
        return this.dono;
    }

    public Instancia setDono(String dono) {
        this.dono = dono;
        return this;
    }

    public String getData_criacao() {
        return this.data_criacao;
    }

    public Instancia setData_criacao(String data_criacao) {
        this.data_criacao = data_criacao;
        return this;
    }

    public String getDescricao() {
        return this.descricao;
    }

    public Instancia setDescricao(String descricao) {
        this.descricao = descricao;
        return this;
    }

    public Boolean getAtivo() {
        return this.ativo;
    }

    public Instancia setAtivo(Boolean ativo) {
        this.ativo = ativo;
        return this;
    }

    public Boolean isServicoEnabled(String servico) {
        Boolean b = this.servicos.get(servico);
        if(b == null){
            b = false;
        }
        return b;
    }

    public List<String> getServicosEnabled(){
        List<String> servicos = this.servicos.keySet().stream().filter((me) -> {
            Boolean b = this.servicos.get(me);
            if(b == null){
                b = false;
            }
            return b;
        }).collect(Collectors.toList());
        return servicos;
    }


}

1 个答案:

答案 0 :(得分:0)

尝试使用Oid

怎么样?
Instancia instance = new Instancia();
instances.find(withOid(instance.id)).as(Instancia.class);