問題タブ [activejdbc]
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 - ポリモーフィックな親の ActiveJDBC 熱心な読み込み
子クラスのポリモーフィックな親を熱心にロードできません。include ステートメントは違いがないようです。
子クラス:
親クラス:
積極的に子 + 親を返す必要があるクエリ:
最終的に、次の操作を高速化しようとしています。
これらの操作をベンチに置いたところ、 Child.where() メソッドで .include(ParentRequest.class) が使用されているかどうかに関係なく、上記の操作は約 67 ミリ秒かかるようです。
洞察や助けをいただければ幸いです。
注: 子には親が 1 つしかないことは承知しています。近い将来、それはいくつかになるでしょう。
編集: クエリを反転すると、いくつかの理由ではるかに高速な結果が得られました。つまり、Children を探して ParentRequest を含めるよりも、ParentRequest を検索して Child を含めた方が、操作ははるかに高速でした。結果で子テーブルをparent_requestテーブルに結合するためにfindBySqlを具体的に実行したことに注意してください。以下に、クエリの詳細を残しました。
java - 単体テスト用の ActiveJDBC の findAll() メソッドのモック
モデルを持つプロジェクトで ActiveJDBC を使用していますScriptRule
。添付のコード スニペットを見つけてください。
単体テストの作成に PowerMock を使用しています。メソッドのテストで問題に直面していますRuleEvaluatorProvider.getRuleEvaluatorClient()
。findAll()
メソッドはオブジェクトを返しますorg.javalite.activejdbc.LazyList<T>
。
したがって、PowerMockito.when(ScriptRule.findAll()).thenReturn();
utils リストしか作成できないため、a は機能しません。ActiveJDBC でこのような単体テストを行った経験のある人はいますか。
助けてください。
activejdbc - activejdbc 1.4.12 で db Model getId() を取得できなくなりました
私はactivejdbc 1.4.9を使用していましたが、次のサンプルコードは問題なく実行されていました
1.4.12 にアップグレードしてから、save が新しいレコードを挿入するときに、client.getId() は常に null を返します。つまり、id が更新されていません。
これも誰か気づいた?新しく作成された ID を取得するために、このバージョンを使用して何か違うことをする必要がありますか?
activejdbc - 空の値で DB モデル列を更新する際の問題
最近、activejdbc 1.4.12 にアップグレードしましたが、値が空のレコードを更新すると、動作が異なることに気付きました。
以下の例を確認してください。
どうやら、バージョン 1.4.12 以降では、明示的に set(address, null) を呼び出した場合にのみアドレスが null で更新されるようになります。この問題を抱えている他の人はいますか?これは正しいです?
java - IntrumentModels のタスク: モデル クラスは凍結されています
Spark Framework を使用して小さなプロジェクトを開始し、その ORM として ActiveJDBC を選択しました。Gradle を使用してすべてを構築しています。
(更新、IT は ActiveJDBC 1.4.12 を使用していました)
これが私のbuild.gradle
ファイルです:
私はすべてのクールなモデルのメソッドにアクセスするための単純なモデルを持っています:
プロジェクトをビルドしようとすると、問題が発生します。
java - モデルを持たないテーブルからデータを取得するにはどうすればよいですか?
序章
私はプロジェクトに取り組んでおり、おそらく ActiveJDBC が意図されていない奇妙なユースケースに直面しました。このプロジェクトの多くのことは私の制御下にないため、忍耐を誓います。
私は 10 ~ 15 個の中小規模のデータベース (それぞれ最大 30 個のテーブル、最大 40000 レコード) を持っており、それらのほとんどは 15 個のテーブルの「コア」スキーマを共有していますが、同時に、データベースごとに固有の特定のテーブルがいくつかあります。私がアクセスできないレガシーシステムによってすべて維持されています。
ゴール
私たち (私と何人かの同志) は、一種の「複雑なデータ ウェアハウス」にデータを集中化する必要があります。残念ながら、より高い理由により、私は ActiveJDBC 以外のテクノロジーを使用することができず、それ以外はすべて私たちが作成する必要があります (これは MongoDB および/または Liquibase でより適切に処理できることを知っています)。
データベース間の接続はすでに処理済みで、プロジェクト自体はほぼ順調に進んでいます。すべてのデータベースが共有するコア スキーマを処理するプログラムの部分は、既に "機能" していますが、固有のテーブルに問題があります。
実行時に作成されたクエリから、データベースからすべてのテーブル名を取得します (私の選択でもありません)。クラスの数をできれば最小限に抑える必要があります
最後に私の質問
実行時にクエリからのデータを保持できるジェネリック/ダイナミック モデルまたは類似のモデルを作成できますか? 何かのようなもの:
また
モデルをそのように使用するのは奇妙ですが、そのようにテーブル データを取得できれば、私たちの生活はとてもシンプルになります。
この種のモデルは、主にテーブルから「生の」データを取得し、インターフェイスを満たすために使用するため、各テーブルの関係について今すぐ心配する必要はありません。
前もって感謝します
@Edit: この素晴らしいツールを提供してくれた Igor に感謝します!
私たちはちょっと(ほぼ)やった!ありがとうございました。「コアスキーマ」にも同様のアプローチを使用していましたが、あなたは私たちにいくつかの光を与えてくれました.
私がコメントしたように:
Base.findall() の結果をモデルのように使用する必要がありますが、可能でしょうか?