問題タブ [db4o]
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.
java - クエリ実行時のdb4o(java)の問題
私は公式のdb4oチュートリアルの一部をざっと見ていて、ネイティブクエリを実行するためにそれらが提供するコードに変更を加えようとしています。
私はこれを彼らのパイロットクラスに追加しました:
2番目のコンストラクターを使用してデータベースに500個のオブジェクトを既に入力しましたが、データベース内のすべてのデータはOMEeclipseアドオンで正しく表示されます。getGames()をテストしましたが、期待どおりに機能します。
私の問題は、変更されたクエリを実行すると、データベース内のすべてのオブジェクトが返され、その理由がわからないことです。trueの場合はより標準的な構造を含めるようにクエリを変更し、それ以外の場合はfalseの構造を含めるようにクエリを変更し、無駄になるまで一定量のポイントを要求するようにクエリを変更してみました。私が何をするにしても、それは常に(pilot.getGames()> = 100)が真であると評価しているようです。
誰かが理由を理解するのを手伝ってくれますか?
subsonic - サブソニックとDB4O
私は最近、DB4O に関する Rob Conery の記事を読んでいましたが、非常に興味深いものでした。私の質問は、クラスの生成と、Subsonic と DB4O の将来の使用に関するものです。
Subsonic はデータベースを見てクラスを生成するので、DB4O ではこれがどのように機能するでしょうか。クラスを手動で作成する必要があり、DB4O はクラスによって定義されたとおりにオブジェクトを格納しますか、それとも Subsonic のようなクラス ジェネレーターが使用できるデータベース設計手順はありますか?
Subsonic には、将来のビルドで動作するデータベースの 1 つとして DB4O が含まれますか?
.net - フィールドを更新するときにDB4Oで孤立したオブジェクトを防ぐ
PersonオブジェクトをDB4Oに保存したい。[個人の場所]フィールドは、時間の経過とともに変更できます。そこで、DBから人を取得し、メソッドを呼び出して、場所フィールドを新しい場所オブジェクトに設定します。(Locationオブジェクト、つまりDDD値オブジェクトを不変にしたい)。
これは機能しますが、以前に割り当てられたLocationオブジェクトはデータベースのままです。これらの孤立したLocationオブジェクトを削除するようにDB4Oを構成するにはどうすればよいですか?または、ガベージコレクションを行うためのカスタムプロセスが必要ですか?
この例の簡略化されたクラス:
編集:いくつかの詳細情報-PersonはDDD集約ルートであることが意図されています。したがって、人の内部状態への外部参照はありません。Personがその場所を更新すると、古い場所は存在しなくなります。
.net - 良いdb4oビューアをお勧めします
私はdb4oで遊んでいて、VisualStudio用のObjectManagerビューアを持っています。大丈夫なようですが、HeidiSQL / SQLStudioなどのツールとまったく同じではありません。db4oファイルがロックされることは言うまでもありません。db4oアプリとオブジェクトマネージャーを同時に使用することはできません。
間違って使っているのかもしれませんが、それでも、他に何があるのか知りたいです。db4oファイルを調べて操作するためにどのツールをお勧めしますか?
更新:私はLINQPadを使用しています。ヤクの剃毛も含まれていますが、かなりうまく機能しています。HeidiSQL / SQL Studioなどのアプリケーションで利用できる機能に関しては、まだ多くの要望がありますが、それは始まりです。
sql-server - SQL Server から db4o にデータを転送するにはどうすればよいですか?
ODBC または JDBC を検索した後、この質問に出会いました。驚いたことに、私は db4o を初めて使用するので、Netbeans や Eclipse プラグインなど、db4o をブラウズするためのツールがあることを知りました。販売もデモもされていません(まだ準備ができていないと思います)。
では、どのようにデータを転送しますか?まだ見つけていないツールやスクリプトはありますか?
jdbc - db4o などのオブジェクト データベースでのデータ メンテナンスの処理
db4oのようなオブジェクト データベースを使用する際に、私が非常に混乱していることの 1 つは、通常は SQL/PL-SQL によって処理される複雑な移行をどのように処理する必要があるかということです。
たとえば、my_users というリレーショナル データベースにテーブルがあるとします。もともと「full_name」という名前の列がありましたが、ソフトウェアが V2 になったので、この列を削除し、フル ネームを空白スペースで分割し、最初の部分を「first_name」という名前の列に入れ、2 番目の部分を列に入れたいと考えています。 last_name という名前です。SQL では、「first_name」列と「second_name」列にデータを入力してから、「full_name」という名前の元の列を削除します。
db4oのようなものでこれを行うにはどうすればよいですか? User.class のすべてのオブジェクトを検索し、first_name と last_name を設定しながら full_name を null に設定するスクリプトを作成する Java プログラムを作成する必要がありますか? 次の svn commit を行うと、full_name に対応するフィールド/bean-property がなくなりますが、これは問題になりますか? 私の「スキーマ」が変更される本番アプリケーションでそれを使用するように思えますが、バージョン x からバージョン x+1 にデータを移行するスクリプトを作成し、バージョン x+2 で実際にしようとしているプロパティを削除します。タイプの一部ではなくなったプロパティを変更する Java スクリプトを作成できないため、バージョン x+1 では削除してください。
問題の一部は、RDBMS が参照しているオブジェクトを単純な大文字と小文字を区別しない文字列ベースの名前に基づいて解決することのようです。Java のような言語では、型付けはこれよりも複雑です。ゲッターがプロパティを参照できない場合/setter/field は実行時にロードされるクラスのメンバーではないため、基本的に同じスクリプトに 2 つのバージョンのコードを含める必要があります (うーん、カスタム クラスローダーは苦痛のように聞こえます)。新しいバージョンのクラスを格納します。別のパッケージ (ごちゃごちゃしているように聞こえます) を使用するか、前述のバージョン x+1 x+2 戦略を使用します (さらに多くの計画が必要です)。おそらく、db4o ドキュメントから収集したことのない明白な解決策があるでしょう。
何か案は?うまくいけば、これはある程度の意味があります。
licensing - 商用ソフトウェアでAndroid用のdb4oを使用するには、料金を支払う必要がありますか?
db4o for Androidは商用ソフトウェアに無料で使用できますか?あなたがサポートにお金を払うことができることを私は知っています、しかし私がサポートを必要としないならば、それは無料でしょうか?
java - db4o object manager enterprise は無料ですか? どこでダウンロードできますか? スタンドアロン アプリケーションですか?
タイトルの通り、この質問には 3 つの部分があります...
db4o object manager enterprise は無料ですか?
-無料であるというブログ記事を見ました。
どこでダウンロードできますか? -ウェブサイトはかなり不明確です
スタンドアロン アプリケーションですか?-Eclipseプラグインだったのを覚えているようですが、これは少し前のことです。Intellij プラグインはありますか?
c# - db4oから最も古いオブジェクトをクエリする方法は?
DateTimeプロパティを持つオブジェクトがありますが、最も古いオブジェクトをクエリするにはどうすればよいですか?
db4oフォーラムで質問した後、私は答えを得ました:
非常に簡単です。SODA-Query and
結果のから最初/最後のオブジェクトを取得してソートされたものを作成しますObjectSet
。(したがって、オブジェクトはアクティブ化されません)を繰り返さないでください。ObjectSet
必要なオブジェクトを、を介して直接取得して#ObjectSet.Get(index)
ください。
注意:db4oは、クエリ実行でパフォーマンスの高い並べ替え(アルファベット順、数値、オブジェクトID)の限られたセットのみをサポートするため、良好なパフォーマンスを実現するには、DateTimeをミリ秒単位で保存する必要があります。