0
У меня есть класс, который реализует интерфейс. Почему содержимое arraylist не хранится в базе данных? Вот несколько примеров, чтобы проиллюстрировать проблему.Morphia: наследование не обрабатывается должным образом?
Класс
@Entity
public class MyClass implements MyInterface {
@Id
@Indexed
public String id;
public String someField;
public MyClass(String id, String someField){
this.id = id;
this.someField = someField;
}
}
Интерфейс
public interface MyInterface {
@Embedded
public List<String> mylist = new ArrayList<String>();
}
Код испытания
@Test
public void test() {
testInheritance();
}
public void testInheritance() {
MyClass myClass = new MyClass("test", "someField");
myClass.myList.add("wow");
MyClassDao dao = new MyClassDao();
dao.save(myClass);
}
public class MyClassDao extends BasicDAO<MyClass, ObjectId> {
public MyClassDao() {
super(MyClass.class, MorphiaManager.getMongoClient(), MorphiaManager.getMorphia(), MorphiaManager.getDB().getName());
}
}
Результат в БД
{
"_id" : "test",
"className" : "gr.iti.mklab.simmo.util.MyClass",
"someField" : "someField"
}