問題タブ [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 投票する
1 に答える
211 参照

greendao - DaoMaster に非抽象 OpenHelper クラスがないのはなぜですか?

greendao の生成コードが DaoMaster からの非抽象 OpenHelper クラスを提供しないのはなぜですか? 開発モードのみを想定した DevOpenHelper のみを提供します。

スティーブ

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

greendao - EclipseなしでgreenDaoの例をコンパイルするには?

Eclipse なしで GreenDao の例と DaoExampleGenerator をコンパイルするには?

0 投票する
3 に答える
1858 参照

android - Green-DAOを使用した永続的な双方向エンティティ

Green DAOの双方向関係についての以前の質問からおそらく覚えていると思いますが、私は会話とメッセージで構成されるチャットをしています。
すべてのメッセージには親の会話があり、会話にはメッセージのリストがあります。

新しいメッセージを追加しようとすると、アプリケーションを閉じない限り、完全に機能します。
これは、既存の会話にメッセージを追加するために使用するコードです。

私は今これを行う私のコードを持っています:

次回アプリケーションを開いてを呼び出すconv.getMessageList()と、結果は空になりArrayListます。

私は何が間違っているのですか?

編集:

コードを変更したところ、次のようになりました。

残念ながら、これまで以上に(同じ実行でも)、呼び出しconv.getMessageList()ても空のが返されますjava.list

編集2:

これがジェネレーターのコードです(これは実際のコードではありませんが、質問にとって重要なものだけです。

編集3

conv.getMessageList();今のところ、私がこの回線を実行していると呼び出す代わりに、それは正常に動作します。

これらすべての実装において、私またはgreenrobotにとって大きな問題だと思います。

これは上記のコードを実行する際の問題Session.runInTxですか?

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

java - stORMまたは代替手段を使用した外部キ​​ーを使用したAndroid SQLiteクエリ

私は次のモデルを持っています

ユーザーが見たいカテゴリに基づいてコンテンツを表示するリスト ビューがあります。

カテゴリのデータ

ユーザーが、category_id = 2 と 4 の場所のみを見たい場合。

データベースにクエリを実行して、category_id = 2 と 4 を持つ場所のリストを返すにはどうすればよいですか。

データベースにstORMライブラリを使用しています。

クエリを実行するための次の関数があります。

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

greendao - エンティティに対して複数のテーブルを作成する方法は?

エンティティに対して複数のテーブルを作成する方法は?

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

android - 生成時に保持セクションが削除されています

私は GreenDAO v1.2.0 を使用して、Android アプリのエンティティ クラスを生成しています。

スキーマに enableKeepSectionsByDefault() を設定し、生成されたクラスに次のコメント行を取得しています。

コメントの間にいくつかのカスタム メソッドを挿入しましたが、カスタム メソッドは再生成するたびに削除されます。

これを機能させるために他に何かする必要がありますか?

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

android - 複数の greenDAO Tx 操作を 1 つのトランザクションに結合する方法は?

私のアプリケーションはリモート REST API を使用し、ローカル データベースに greenDao を入力します。AsyncTask クラスのサービスがあります。

各挿入メソッド内には、主にパフォーマンス向上のために使用する insertOrReplaceInTx があります。

必要なのは、メソッドのいずれかがデータの取得に失敗した場合に結果を破棄することです。同じトランザクションを通じて行われるはずです。

mDaoSession.callInTx(callable)メソッド内にあるときに、挿入メソッド呼び出しを囲むのが正しいかどうか疑問に思いinsertOrReplaceInTxます。私は正しいですか?

さらに、例外が発生した場合にトランザクションを放棄するにはどうすればよいですか? greenDao によって自動的に行われますか?

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

android - greendao:クエリをデバッグする方法は?

Logcatに実行されているgreendaospitクエリ作成する方法はありますか?私はただすべてがうまく機能していることを安心させたいので、システムに慣れている間に持っているのは良い機能でしょう。

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

android - greendaoのOpenHelperコンストラクターに正しいコンテキストを渡す

私が正しく理解していれば、DBを操作するときは、次のようにする必要があります

しかし、アクティビティやサービスを拡張していないクラスでこれを実行しようとすると、単にコンテキストを渡せません。

DBを開くための正しいアプローチは何ですか?どこでやるべきですか?

公式のgreendao以外にいくつかのチュートリアルリンクを提供できれば(私はそこに答えを見つけることができませんでした)、それは素晴らしいことです。

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

android - 閉鎖されたデータベース。自動同期により、「既に閉じられているオブジェクトを再度開こうとしている: SQLiteDatabase」例外が発生する

私は GreenDAO ORM を使用して Android アプリケーションを作成しており、その上に一般化されたクラッド サービス レイヤーがあります。DaoMaster と SQLiteDatabase への静的参照を保持するこの単一のファイルがあります。

アプリを起動したら、DATABASE.Initialize() を呼び出し、メインのアクティビティが破棄されたら、DATABASE.CloseDatabase() を呼び出します。アプリが最初に起動すると、最初の同期が実行され、取得されたエンティティがそれぞれの Crud サービス インスタンスを介して送信されます。これは、それぞれの DAO を処理して、エンティティをこのデータベースに永続化します。

ただし、定期的な同期では、アプリが実行されていないときでも、このデータベースにアクセスする必要があります。いくつかの同期はかなり頻繁に実行されます。同期が実行されると、同期から呼び出されるクラスで DATABASE.Initialize() を呼び出しますが、最初の Crud サービス クエリに到達すると、次のエラーが発生します。

誰かが私が間違っていることを理解するのを手伝ってくれるなら、それは大歓迎です。私は基本的に2つのことを知る必要があります:

1) DATABASE.java の変数は静的であるため、GC が実行されるまでキャッシュされます。GC またはおそらく finalize() を呼び出すことができますか? それとも、CloseDatabase() でそれらを null に設定する必要がありますか?

2) 同期はデータベースに依存しているため、データベースを閉じることもできますか? 閉じないと、リークが発生しませんか?

前もって感謝します。

編集:私は周りを見回して、静的変数が実際にはGCが実行されるまで持続することを学びました。というわけで、#1 を書き換えました。

EDIT 2:その後、DATABASE.java とその Initialize メソッドへの呼び出しを更新して、アプリケーション コンテキストを使用するようにしましたが、問題が解決したようです。同期が再実行されると、最初のcrudサービスクエリでNullPointerExceptionが発生します。

編集 3: null ポインター例外が修正されました。誤って新しいデータベースを開いてしまい、そこにエンティティが存在しませんでした。