Я пытаюсь сохранить «BestandItem», который состоит из «ScanItem» и календаря с Ormlite.После перезапуска моего приложения (для Android с Android Studio, которую я пишу с Java) содержимое ScanItem исчезает, но только если оно находится внутри Bestanditem.
Это мой ScanItem:
@DatabaseTable(tableName = "scanItem")
public class ScanItem{
@DatabaseField (generatedId = true)
private int id;
@DatabaseField
private String barcode;
@DatabaseField
private String name;
public ScanItem(String barcode, String name) {
this.barcode = barcode;
this.name = name;
}
public ScanItem(){}
И это мой BestandItem:
@DatabaseTable (tableName = "bestandItem")
public class BestandItem {
@DatabaseField (generatedId = true)
private int id;
@DatabaseField (foreign = true, foreignAutoCreate = true)
private ScanItem scanItem;
@DatabaseField (dataType = DataType.SERIALIZABLE)
private Calendar ablaufDatum;
public BestandItem() { }
public BestandItem(ScanItem scanItem, Calendar ablaufDatum) {
this.scanItem = scanItem;
this.ablaufDatum = ablaufDatum;
}
Некоторые из вещей, которые я пробовал:- Документация Ormlite - Первый ответ Stackoverflow - Второй ответ Stackoverflow
Дополнительную информацию смотрите в моем проекте на github: Github SmartFridge
Моя база данных Ormlite имеет UtilConfigClass и постоянно обновляемый файл config.txt.Что я тут не так сделал?Почему бы не сохранить ScanItem правильно?
После некоторых проверок я могу сказать, что другие методы работают просто отлично.(только после потери ScanItem я получаю исключение NullPointerException).Мой вывод заключается в том, что проблема в конструкторе BestandItem.
Я думаю, что я сделал что-то не так с generateID и / или foreignAutoCreate, но я не совсем понимаю, как его правильно использовать.Кроме того, что именно ForeignAutoRefresh делает.
Я пытался изменить идентификатор и генерируемый идентификатор вокруг, потому что я думаю, в этом проблема.