如何在变量中设置整个枚举列表,然后将其保存在 MongoDB 中
How to set entire enum list in a variable and then save it in MongoDB
我需要将 Enum 数据保存在 MongoDB 中,为此我能够获取 Enum 数据但不知道如何设置它。我在 POJO 中使用 Enum,需要将包含 Enum 的 POJO 保存在 MongoDB 中,为此使用 Gson。
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"), Incidental_Farming_Personal_Liability("IFPL");
private String val;
Coverage(String val){
this.val = val;
}
public String getVal ()
{
return this.val;
}
public void setVal (String val)
{
this.val = val;
}
}
public Coverage value;
public Coverage getValue() {
return value;
}
public void setValue(Coverage value) {
this.value = value;
}
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;
}
}
在另一个 class 中,我从需要将其保存在 Mongo 数据库中的地方调用它。
Coverage1 cv= new Coverage1();
List<Coverage1.Coverage> ae= new ArrayList<Coverage1.Coverage>();
for(Coverage1.Coverage enumval:Coverage1.Coverage.values()){
//ae=enumval;
System.out.println(enumval);
cv.setValue(enumval);//I need to set the entire Enum data here, so that it could be saved in Mongo. But not getting how to save the entire data
}
cv.setId("1");
Gson gson = new Gson();
String json = gson.toJson(cv);
System.out.println(json);
// Parse to bson document and insert
Document doc = Document.parse(json);
db.getCollection("NameColl").insertOne(doc);
请有人帮助我如何将整个枚举数据保存在 Mongo 文档中。
您可以在 JSON 中使用覆盖值列表重新生成正确的模式,但这需要是一个列表
public Coverage1.Coverage[] values;
因此,也更改getters和setters。
然后,您可以cv.setValues(Coverage1.Coverage.values());
或者,您可能尝试过这样做
List<Coverage1.Coverage> ae= new ArrayList<Coverage1.Coverage>(Arrays.asList( Coverage1.Coverage.values());
或者,
for(Coverage1.Coverage enumval: Coverage1.Coverage.values() ){
ae.add(enumval);
}
基本上,cv.setValue(enumval);
不能在循环中完成,因为您会覆盖 value
我还会为枚举建议更好的名称。 Coverage1
末尾的那个可以去掉
我需要将 Enum 数据保存在 MongoDB 中,为此我能够获取 Enum 数据但不知道如何设置它。我在 POJO 中使用 Enum,需要将包含 Enum 的 POJO 保存在 MongoDB 中,为此使用 Gson。
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"), Incidental_Farming_Personal_Liability("IFPL");
private String val;
Coverage(String val){
this.val = val;
}
public String getVal ()
{
return this.val;
}
public void setVal (String val)
{
this.val = val;
}
}
public Coverage value;
public Coverage getValue() {
return value;
}
public void setValue(Coverage value) {
this.value = value;
}
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;
}
}
在另一个 class 中,我从需要将其保存在 Mongo 数据库中的地方调用它。
Coverage1 cv= new Coverage1();
List<Coverage1.Coverage> ae= new ArrayList<Coverage1.Coverage>();
for(Coverage1.Coverage enumval:Coverage1.Coverage.values()){
//ae=enumval;
System.out.println(enumval);
cv.setValue(enumval);//I need to set the entire Enum data here, so that it could be saved in Mongo. But not getting how to save the entire data
}
cv.setId("1");
Gson gson = new Gson();
String json = gson.toJson(cv);
System.out.println(json);
// Parse to bson document and insert
Document doc = Document.parse(json);
db.getCollection("NameColl").insertOne(doc);
请有人帮助我如何将整个枚举数据保存在 Mongo 文档中。
您可以在 JSON 中使用覆盖值列表重新生成正确的模式,但这需要是一个列表
public Coverage1.Coverage[] values;
因此,也更改getters和setters。
然后,您可以cv.setValues(Coverage1.Coverage.values());
或者,您可能尝试过这样做
List<Coverage1.Coverage> ae= new ArrayList<Coverage1.Coverage>(Arrays.asList( Coverage1.Coverage.values());
或者,
for(Coverage1.Coverage enumval: Coverage1.Coverage.values() ){
ae.add(enumval);
}
基本上,cv.setValue(enumval);
不能在循环中完成,因为您会覆盖 value
我还会为枚举建议更好的名称。 Coverage1
末尾的那个可以去掉