3

GreenDAOを使用しています。しかし、この例外をスローします:

"de.greenrobot.dao.DaoException: Entity is detached from DAO context".

生成されたコードで、私はこのコードを見つけます。

/** called by internal mechanisms, do not call yourself. */
public void __setDaoSession(DaoSession daoSession) {
    this.daoSession = daoSession;
    myDao = daoSession != null ? daoSession.getPeerGroupDao() : null;
}

GreenDAOがいつそれを呼ぶか知っている人はいますか?また、呼び出すようにトリガーする方法。

ありがとう。

4

2 に答える 2

7

私は解決策を見つけます。

greenDAOは、loadDeepおよびqueryDeepを呼び出すときに、内部で__setDaoSessionを呼び出します。これらのメソッドを呼び出した後、1対多または1対1の関係が構築されます。SQLiteDatabaseを使用して結果をクエリするだけの場合は、データを取得するだけですが、関係は構築されません。

詳しくはこちらのサイトへ

ありがとう。

于 2013-03-27T02:08:02.210 に答える
0

武王の答えを完成させるために、あなたがあなた自身であなたのオブジェクトをインスタンス化するとき、それは同じ問題です。問題を解決するには、daoSessionをオブジェクトに設定します

Product product = new Product(null, 1L, categoryId, null);
product.__setDaoSession(MyApplication.getDaoSession());

そしてあなたができる後

product.getCategory()
于 2016-12-16T09:10:25.197 に答える