問題タブ [greendao]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1994 参照

android - greenDAOでオブザーバーパターンを実装するには?

ローカル db (オブザーバー パターン) への変更で自動的に更新される ListView を実装したいと思います。Loaders と ContentProviders は現在 greenDAO でうまく動作しないことを読んだので、推奨されるアプローチを知りたいですか?

0 投票する
1 に答える
907 参照

android - Green-DAOで双方向1:mを処理する正しい方法

双方向1:m関係を処理するときに、新しいオブジェクトをGreen-DAO DBに挿入する正しい方法は何ですか?

たとえば、会話エンティティとメッセージエンティティを持つチャットアプリケーションがあるとします。すべての会話にはメッセージのリストがあり、すべてのメッセージには親の会話があります。

私が今していることは次のとおりです。

私はこれを正しく行っていないように思えます。これを行う正しい方法についてのガイダンス広告を入手したいと思います。

前もって感謝します...

編集:
私のコメントからわかるように、ここで書いた方法でコードを実装しようnullとすると、リンクしようとしていた会話の代わりになります。
コードを少し変更したところ、次のようになりました。

しかし、繰り返しになりますが、私の問題は、接続が双方向になっていることがわからないことです。
今、threadsDaoを更新する必要がありますか?

0 投票する
1 に答える
1537 参照

android - greendao 左結合のジレンマ

私は greenDao を使用しており、左結合機能に似た複数のテーブルからデータを抽出する必要があります。これは私のスキーマジェネレーターからの引用です:

私がする時:

Retailer テーブル自体の内容のみを取得しますが、null の Shop エンティティ値も必要です。エンティティを呼び出しgetShops()た後でのみ、いっぱいになります。最初のクエリでエンティティを埋める必要があります。それはどのように行われますか?

ありがとう。

0 投票する
1 に答える
565 参照

android - GreenDao はデシリアライゼーションで daoSession をリセットします

シリアライゼーションを使用していますが、オブジェクトをデシリアライズしてリレーションを解決しようとすると、次の例外が発生します。

エンティティが DAO コンテキストから切り離されている

daoSession と myDao は一時的なものであり、シリアライズ時に無効化されるためだと思います。

daoSession と myDao を安全にリセットするにはどうすればよいですか?

0 投票する
2 に答える
5518 参照

android - greendao greendao はいつセッションキャッシュからデータベースを更新しますか?

問題は、GreenDao がセッション キャッシュから SQL データベースを更新するのはいつですか?

データベースから既存のエンティティを照会し、そのプロパティ (フィールド) の 1 つを変更するとします。いずれにせよ、SQL データベースを指示せずに変更が実行されます。

それで、エンティティを更新する必要がありますか?GreenDao がセッション キャッシュをデータベース自体にフラッシュするのはいつですか?

0 投票する
2 に答える
1249 参照

android - green DAO を使用してデータベースの開いているすべての接続を知る方法..?

こんにちは皆さん、私はAndroidを初めて使用し、データベースを管理するために緑のDAOを使用していますが、アプリケーションonTeriminate()でそれを行っているため、データベースが閉じていない例外を頻繁に取得しています。アプリケーション全体でデータベースの単一接続のみを維持していますが、場合によっては私のアプリケーションバックグラウンドに戻り、データベース接続オブジェクトがnullになっていることを再開します。使用する前にオブジェクトのnullネスをチェックすることで問題を処理しましたが、今では例外が頻繁に発生します

android.database.sqlite.DatabaseObjectNotClosedException: アプリケーションは、ここで開かれたカーソルまたはデータベース オブジェクトを閉じませんでした

これを処理する方法を教えてください

前もって感謝します

lang.IllegalStateException: データベース ロックがありません。01-03 09:39:18.688: E/システム (3063): android.database.sqlite.SQLiteDatabase.verifyLockOwner (SQLiteDatabase.java:2090) 01-03 09:39:18.688: E/システム (3063): でandroid.database.sqlite.SQLiteDatabase$1.entryRemoved(SQLiteDatabase.java:2182) 01-03 09:39:18.688: E/System(3063): android.database.sqlite.SQLiteDatabase$1.entryRemoved(SQLiteDatabase.java:2178) ) 01-03 09:39:18.688: E/System(3063): android.util.LruCache.trimToSize(LruCache.java:197) で 01-03 09:39:18.688: E/System(3063): Android で.util.LruCache.evictAll(LruCache.java:285) 01-03 09:39:18.688: E/System(3063): android.database.sqlite.SQLiteDatabase.deallocCachedSqlStatements(SQLiteDatabase.java:2143) 01-03 09 :39:18.688: E/System(3063): android.database.sqlite.SQLiteDatabase.

接続を閉じるためのコード:

0 投票する
2 に答える
375 参照

android - 生成されたエンティティ クラスへのカスタム コードの追加

私はgoogle-http-java-client ライブラリを使用して、ウェブとの通信を簡素化し、サーバーの応答の解析を自動化しています。したがって、次の例のように @Key(name) アノテーションで POJO クラスのメンバーにアノテーションを付ける必要があります。

サーバーの応答を受け取った後、これらのエンティティをデータベースに保存したいと思います。したがって、このクラスを GreenDAO で生成する必要があります。そして主な質問は、アノテーション @Key を生成されたクラスに挿入する方法です。はい、生成されたクラスにコードを挿入できることはわかっています。このトピックでは、この機能について説明します。しかし、私が理解しているように、カスタムメンバー、メソッド、およびインクルードのみを挿入できます。

0 投票する
1 に答える
683 参照

android - GreenDao - 実行時にデータベースのサイズを決定する

データベース(もちろん* .sqliteファイル)のサイズをバイト単位で取得する方法を教えてください。

私の現在の方法(これは機能していません)は次のとおりです。 new File(DataManager.getInstance().db.getPath()).length()

しかし、データベースの内容とは無関係である 53,676~ のたびに同じ番号を取得しています。空の場合でもこの番号を取得しています。

ありがとうございました。

0 投票する
2 に答える
8559 参照

android - IDのリストで指定されたすべてのアイテムをロードするGreenDaoクエリを作成するにはどうすればよいですか?

文字列のリストがあります。各文字列は、GreenDaoを介して永続化されるアイテムの一意の識別子です。

このすべてのアイテムをデータベースからロードできるクエリを作成するにはどうすればよいですか?

QueryBuilderでそれを行う可能性はありますか、それともSQLの記述に戻る必要がありますか?