Привет, у меня есть раздел ducument mongo DB, в котором есть свойство columns, как показано (1-й формат)
"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"
}
},
{
},
{
}
]
Как массив объекта объекта
теперь у меня есть класс dao someObject для хранения самого внутреннего объекта
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;
}
}
вот раздел Дао класс
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;
}
}
как класс раздела когда-либо это отлично работает для первого формата, поскольку я взял тип как список
но ломается для второго формата, так как он отличается
я тоже пробовал использовать этот класс
Public class Section {
private List<Object> columns;
}
это соответствует второму формату, но не соответствует первому формату я получил следующую ошибку
"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.
пожалуйста, может ли кто-нибудь предложить, как мне создать класс dao, чтобы он мог отображать оба формата ?? мне нужно реализовать настраиваемый картограф? если да, то как?
Мне кажется, вы немного не понимаете, что такое класс DAO. У вас есть JavaBeans.
А что касается вашего вопроса, как вы заметили и как указано в деталях исключения, ваш документ - это ArrayList
, почему бы просто не прочитать его как ArrayList
, а затем установить его в поле Section
?
Но если этот вариант вам не подходит, вы можете реализовать Пользовательский конвертер, об этом также сообщается вам в деталях исключения.
@ user_531 тогда может быть стоит привести ваши данные в порядок и сохранить их в одном формате?
я не уверен, будет ли это массивом ArrayList (как в формате 1) или массивом объектов (как показано в формате 2)