如何将POJO文件中的枚举数据保存到MongoDB

时间:2016-10-07 10:55:02

标签: java mongodb enums

我可以使用Gson在MongoDB中保存简单的POJO文件内容,但现在我想将POJO文件中的枚举数据保存到MongoDB。但我没有得到如何保存枚举数据。

这是我的POJO档案:

import javax.annotation.Generated;

@Generated("org.jsonschema2pojo")
public class Coverage1 {
    public  enum Coverage {
Hearing_Aid_Professional_Liability("HEAR"), Incidental_Motorized_Land_Conveyances_Liability_Only("LANDC"), PremisesOperations_334("PREM"), Rental_Reimbursement("RREIM"), Liquor_Law_Liability_332("LLL"), Wind("WIND"), Business_Personal_Property("BPP"), OpticianOptometrists_Professional_Liability("OOPRL"), Builders_Risk("BLDRK");

    private String val;

Coverage(String val){
        this.val = val;
    }

    public String getVal ()
    {
        return this.val;
    }

    public void setVal (String val)
    {
        this.val = val;
    }
}


    private String id;

    private CoverageCd coverageCd;
    private CoverageDesc coverageDesc;
    private CoverageTypeCd coverageTypeCd;

    public String getId() {
        return id;
    }


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


    public CoverageCd getCoverageCd() {
        return coverageCd;
    }


    public void setCoverageCd(CoverageCd coverageCd) {
        this.coverageCd = coverageCd;
    }


    public CoverageDesc getCoverageDesc() {
        return coverageDesc;
    }

    public void setCoverageDesc(CoverageDesc coverageDesc) {
        this.coverageDesc = coverageDesc;
    }


    public CoverageTypeCd getCoverageTypeCd() {
        return coverageTypeCd;
    }

    public void setCoverageTypeCd(CoverageTypeCd coverageTypeCd) {
        this.coverageTypeCd = coverageTypeCd;
    }

}

这是我的班级,我正在进行Mongo Call

       Employee employee = new Employee(); // Create java object of Simple POJO with field No and Name
        employee.setNo(2L);
        employee.setName("POJO Test");
        Coverage1 cv= new Coverage1();//POJO containing Enum
        //How to save the Enum in Mongo
        // Deserialize object to json string
        Gson gson = new Gson();
        String json = gson.toJson(employee);
        System.out.println(json);
        // Parse to bson document and insert
       Document doc = Document.parse(json);
       db.getCollection("NameColl").insertOne(doc);

我现在能够在另一个类中获取Enum的值,但是没有得到如何在MongoDB中保存整个数据。

Coverage1 cv= new Coverage1();
            for(Coverage1.Coverage enumval:Coverage1.Coverage.values()){
                System.out.println(enumval);
                cv.setValue(enumval);//How to set the entire Enum Data in Mongo
            }

请建议如何在MongoDB中插入整个Enum数据。

1 个答案:

答案 0 :(得分:0)

您可以将常量保存为字符串,调用Enum#name()方法并使用Enum#valueOf()

将其检索回来

实施例

myEnum.valueOf(arg0)