У меня есть два объекта, User
и Store
. User
имеет много отношений (1: M). Я ввел список магазинов в таблицу магазинов, выполнив следующий код.DaoException: Сущность отделена от контекста DAO
public void saveStoresToDatabase(Context context, ArrayList<Store> storeList) {
DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "notes-db", null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
StoreDao storeDao = daoSession.getStoreDao();
ArrayList <Store> list = SharedData.getInstance().getUser().getStoreList();
for(int i = 0; i < storeList.size(); i++) {
storeList.get(i).setUserIdForStore(SharedData.getInstance().getUser().getId());
}
storeDao.insertOrReplaceInTx(storeList);
list.addAll(storeList);
user.resetStoreList();
}
Я получаю «объект отсоединяется от контекста DAO» исключение всякий раз, когда я пытаюсь позвонить user.getStoreList()
. Исключение происходит при следующем коде sniped, поскольку daoSession
- null
.
public ArrayList<Store> getDMStoreListFromDatabase(Context context) {
return SharedData.getInstance().getUser().getStoreList();
}
где SharedData
это мой синглтон, имея объект пользователя:
private SharedData() {
user = new User();
}
и я получаю экземпляр sharedData
следующим образом:
public static synchronized SharedData getInstance() {
if (sharedObject == null) {
sharedObject = new SharedData();
}
return sharedObject;
}
Просьба указать код, где вы можете получить пользовательский объект, и где вы вызываете user.getStoreList(). Вы уверены, что storeList правильно вставлен в ваш db? Вы уверены, что для выбранного пользователя в db есть StoreList? – AlexS
Я отредактировал мой вопрос, поставив некоторый код, да, я уверен, что storeList вставлен, хотя я вставляю транзакцию, но я также проверил его, вставив элементы списка один за другим. Есть только один пользователь, так что да, я уверен, что storeList для выбранного пользователя находится в db, поскольку он был успешно вставлен. Есть ли способ просмотреть таблицы базы данных? –