Hi i have a mongo DB ducument section which has the columns property as shown (1st format)
"columns" : [
[
{
"itemId" : ObjectId("5b863b50083ae5eb1e678d75"),
"type" : "field"
}
],
[
{
"itemId" : ObjectId("5b8d4404af0963f54e262f46"),
"type" : "field"
}
],
[
],
[
]
]
which is of the type Array of Array of Objects
However at some places it is also stored in this format as well . (2nd format)
"columns" : [
{
"0" : {
"itemId" : "5b863b50083ae5eb1e678d75",
"type" : "field"
}
},
{
"0" : {
"itemId" : "5b8d4404af0963f54e262f46",
"type" : "field"
}
},
{
},
{
}
]
As Array of Object of Object
now i have dao class someObject to store the inner most object
public class SomeObject{
private ObjectId itemId;
private String type;
public ObjectId getItemId() {
return itemId;
}
public void setItemId(ObjectId itemId) {
this.itemId = itemId;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
here is the section Dao class
public class Section{
private List<List<SomeObject>> columns;
public List<List<someObject>> getColumns() {
return columns;
}
public void setColumns(List<List<SomeObject>> columns) {
this.columns = columns;
}
}
how section class ever this works fine for first format as i have taken type as List
but breaks for second format as it has diffeferent
i also tried using this class
Public class Section {
private List<Object> columns;
}
this mapps the second format but breaks for first format i got the following error
"exceptionDetails": "Cannot convert [Document{{itemId=5877f2345449aef957e1d8ec, type=field}}] of type class java.util.ArrayList into an instance of class java.lang.Object! Implement a custom Converter<class java.util.ArrayList, class java.lang.Object> and register it with the CustomConversions.
please can anyone suggest how do i create by dao class such that it can map both the formats ?? do i need to implement custom mapper ? if yes then how ?
It seems to me you are a little do not understand what is DAO class. What you have are JavaBeans .
And about your question, as you noticed and as reported in the exception details your document is an ArrayList
, why not just read it as an ArrayList
and then set it to Section
field? But if this option does not suit you, you can implement Custom Converter , this is also reported to you in the exception details.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.