У меня есть модель, определенная следующим образом ...
@MongoEntity
public class Ent extends MongoModel{
public Hashtable<Integer, CustomType> fil;
public int ID;
public Ent(){
fil = new Hashtable<Integer, CustomType>();
}
}
CustomType
- это созданный мной тип данных, который в основном содержит список элементов (среди прочего). В какой-то момент в моем веб-приложении я обновляю хеш-таблицу с контроллера, а затем считываю размер только что обновленного элемента. Как следующее ...
public static void addToHash(CustomType type, int ID, int key){
//First I add an element to the list I'm storing in custom type.
Ent ent = Ent.find("byID",ID).first();
CustomType element = user.fil.get(key);
if(element == null) element = new CustomType();
element.add(type);
ent.save();
//Next I reset the variables and read back the value I just stored..
ent = null;
ent = User.find("byID",ID).first();
element = ent.fil.get(ID);
System.out.println("SIZE = " + element.size()); //null pointer here
}
Как видно из приведенного выше примера, я добавляю элемент, сохраняю модель, а затем пытаюсь прочитать то, что я только что добавил, и оно не было сохранено. Вышеуказанная модель Ent
является минимальной версией всей модели, которую я на самом деле использую. Все остальные значения в модели, включая List
, String
, Integer
и т. Д., Корректно обновляются при обновлении, но это Hashtable
, которое я сохраняю, нет. Почему это происходит и как я могу это исправить?