問題タブ [h2db]

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 に答える
1402 参照

sql - 各 Junit テスト後に変更がコミットされた H2 テーブルから行を削除する方法

データベースとの相互作用の単体テストに H2 インメモリ DB を使用しています。

@After でコミットされた変更をクリーンアップして、テーブルが保持されるようにする必要がありますが、すべての行が消去されます (したがって、テーブルを削除することはできません)。私のデータベースには多くの外部キーもあり、特定の順序で行う必要があるため、オブジェクトを1つずつ消去することさえ面倒です。

テーブルを削除せずに、できればオブジェクトを 1 つずつ削除せずに、データベース内の行を消去する方法はありますか?

0 投票する
0 に答える
557 参照

java - SQL 挿入列が見つかりません - マップ

同じキーで複数の HashMap を作成したい。@SQLInsert を使用してこれを修正しました。しかし、今はColumn not foundエラーが発生しています。おそらく間違って注釈を付けていますか?

エラー -

同じキーで複数の HashMap を作成する方がよいアイデアがあるのではないでしょうか?

例:

HashMap1 : キー=abc 値=5 ...

HashMap2 : キー=abc 値=2 ...

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

postgresql - postgresでH2db生成ステートメントを実行する方法

h2 から生成された statmen の下

上記のステートメントを postgresql で実行すると、次のエラーが発生します。

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

java - マッピングが欠落している HQL 左外部結合

hibernate/hql を使用してクエリを作成しています。ここで状況を理解するために、私はかなりの時間立ち往生している問題を抱えています。

情報を取得する必要がある 3 つのテーブルを取得し、全体で 5 つの接続/割り当てテーブルを取得しました。必要な情報は Key、Type、および SourceFile ですが、ここでの特別なケースは、新しいデータのインポート中に SQL が実行されることです。そのため、データが既に存在するか、部分的に存在するかを最初に確認したいと考えています。キー自体が既にデータベースにある場合、Type または SourceFile に関係なく、クエリは常にキーを提供する必要があります。また、キーのみが必要であり、他の情報は必要ありません。(キーは一致しますが、SourceFile と Type は一致しないので、キーだけを返したいです) Key がまったく同じ Type と SourceFile で存在する場合、すべての情報を取得したいと考えています。

テーブルは次のとおりです。

(注意: FK_K_ID は名前キーを持つオブジェクトとして保存され、FK_S_ID はソースとして保存され、FK_T_ID はタイプとして保存されます)

鍵:

キータイプ:

タイプ:

キーソース:

ソース:

これが私がこれまでに試したことです:

これの問題は、それが私が望むことをするということです。しかし、データベース内のすべてのキーと、一致する場所のみの KeyType を取得し、それ以外の場合は null を取得します。すべてのキーを取得するのではなく、要求したキーを取得したいだけです。

正直に言うと、ここで何を試みたのかさえわかりません。最初のクエリを最適化して、要求したキーのみを提供しようとしたと思います。

また、このようなまたは他のバリエーションでフェッチを使用しようとしましたが、必要なように機能しませんでした。

予想通り、これは機能しません。つまり、うまくいかないことがわかるのは非常に簡単ですが、うまくいかない場合はたくさん試してみてください。

さらに多くのクエリの組み合わせとバリエーションを試しましたが、うまくいきませんでした。最初のクエリは、私が得た最も近いものです。誰かが私を助けてくれることを願っています。

PS: 今はマッピングやエンティティを変更できません。私は得たもので働かなければなりません。

アップデート:

わかりましたので、問題の解決に非常に近づいています。私のクエリは次のようになります。

今私がしたいのは、1を実際のオブジェクトと交換することだけです。しかし、これを行うと、「org.hibernate.exception.GenericJDBCException: could not execute query」というエラーが表示されます (Oracle データベースで実行)

誰かがそれを解決する方法を教えてもらえますか?

0 投票する
0 に答える
326 参照

tomcat - Spark-Java Web App の Tomcat で H2DB を実行する

私のSpark Javaアプリは、すべてのh2database接続が正常に機能する組み込みのJettyサーバーで完全に正常に動作します。

私は戦争をパッケージ化してTomcat 8で実行しました。ただし、戦争をTomcatに展開すると. h2databse への接続に失敗しました!!

この問題を解決するにはどうすればよいですか? これは私のweb.xmlです

これが私のメインクラスです。コードは、sql2o 接続を開いたときにのみ失敗します。つまり、tomcat は接続を確立できませんが、jetty サーバーは接続できます。

warファイルをパッケージ化するために使用したbuild.gradleは次のとおりです。

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

mysql - Spring の H2 データベースでの MySQL 構文の統合テストに関する問題

私は、顧客管理にさまざまな MySQL スキーマを使用するプロジェクトに取り組んでいます。たとえば、すべての顧客は、スケルトン テンプレートで作成された独自のデータベース スキーマを持っています。

互換性の問題のため、Java から新しい MySQL スキーマを作成する必要がありますが、これは以前は PHP で行われていました。を繰り返し使用して MySQL データベースで完全に機能する小さなサービス クラスを作成しましたがCREATE TABLE 'a' LIKE 'b';、H2 はテーブルを作成するときに - 部分をサポートしていないため、これは H2db では機能しませんLIKE。次に、MySQL を作成し、Java で簡単に処理できるようにファイルを変更しました (Files.readAllLinesに渡されStatement.executeBatchます)。ただし、このダンプは H2db でも失敗します。これは、 のようなステートメントが原因ですCOLLATION=UTF8。悲しいことに、正しくエンコードする必要がある特別な文字がよくあるため、これらは重要です。そのため、SQL ファイルから上記のステートメントを単純に削除することはお勧めしません。

次のように DataSource を初期化します。

したがって、私の構成の可能性はほとんどありません。gradle私たちはアプリケーションを構築するために使用しているので、提案されたmaven-plugin も役に立ちません - 少なくとも私はそれを で使用する方法を知りませんでしたgradle

したがって、ここでの問題は、サービスが実際にデータを正しく永続化するかどうかを確認する必要があることですが、H2 は構文をサポートしていないため、インメモリでは実行できず、「実際の」MySQL を使用することは許可されていません。これは、すべてのテストを「実際の」接続から切り離す必要があり、必要に応じてデータベースのメモリ内ストアのみを使用するためです。

0 投票する
0 に答える
442 参照

h2 - org.h2.組み込みモードのドライバー バージョン

私の要件は、war ファイルを組み込みモードでデプロイするときに H2 データベースを開始することです。そのために、Java プロジェクトでクラス (DbSetup) を作成しました。web.xml で同じクラスについて言及しました。次に contextInitialized(ServletContextEvent sce) メソッドを実装しました。その方法では、戦争の展開中に接続したh2 dbに接続しています。war ファイルを取得中に、「 jdbc:h2:~/test1 に適したクラスが見つかりません。この問題に対処する方法を教えてください。h2-1.4.192.jar を自分の war にバインドしています。また、コピーしました同じjarをクラスパスに。

web.xml :

私のクラス: