問題タブ [hsqldb]
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 - さまざまな状況でさまざまな Hibernate ユーザー タイプを使用する
ORM ソリューションとして Hibernate + JPA を使用しています。
単体テストには HSQL を使用し、実際のデータベースには PostgreSQL を使用しています。
Postgres のネイティブUUIDタイプを Hibernate で使用できるようにしたいと考えています。ユニット テストでは、HSQL の String 表現で UUID を使用します (HSQL には UUID タイプがないため)。
Postgres と HSQL 単体テスト用に異なる構成の永続性 XML を使用しています。
Hibernate にカスタム UserType を「認識」させる方法は次のとおりです。
そしてそれはうまくいきます。しかし、私が必要としているのは、XML の注釈の「com.xxx.UUIDStringType」部分を交換する機能、または再コンパイルせずに変更できるプロパティ ファイルから交換する機能です。
何か案は?
database - HSQL DB in memory データベースに関する質問
hsqldb のメモリのみのサーバー インスタンスを作成しました。別の jvm で 2 つのクライアントからこのメモリ データベースに接続できますか?
unit-testing - DBUnit テストが大量のメモリを消費するのはなぜですか?
単体テストに DBUnit を使用する休止状態ベースのアプリケーションがあります。各テストの setUp() でダミー データが読み込まれ、tearDown() で削除される XML テスト データベースがあります。問題は、IDE (この場合は Intellij) でスイート全体を実行できなくなったことです。これは、約 300 回のテストの後、ヒープ メモリが使い果たされるためです。JVM が最終的にあきらめて停止するまで、テストの実行には約 0.3 秒から 30 秒以上かかります。
ant の junit タスクを介してテスト スイートを実行すると、問題はなく、個々のクラスのテスト スイートも実行されません。ただし、CI サーバーでビルドを壊すのではなく、大規模なリファクタリングの変更をコードベースにチェックインする前に、スイート全体をローカルで実行できるのが気に入っています。
JVM への唯一の引数として -Xmx512m を使用してテスト スイートを実行しています。これは、CI サーバーでタスクを実行するときに ant に渡すのと同じ量です。私の hibernate-test.cfg.xml は次のようになります。
すべてのテスト クラスの拡張元となるクラスを作成しました。これは次のようになります。
ここでメモリ リークが発生していることは明らかですが、どこで発生しているのかはわかりません。これを診断するにはどうすればよいですか?
java - Hsqldb データベースに長い文字列 (CLOB) を格納しますか?
だからここにいくつかのコードがあります:
これにより、「間違ったデータ型: ステートメントの CLOB [...]」という例外がスローされます。CLOB を Hsqldb データベースに格納する方法はありますか? ドキュメントには、そうであると書かれています。あるいは、SQL に関する私の知識があまりにもさびすぎて、SQL の定義方法を忘れてしまったのかもしれません。
java - Javaで区切られたテキストファイルをクエリするための最良のツールは何ですか?
複数の列で構成されるテキスト ファイルに対して基本的なクエリを実行する必要があります。CSVファイル用のJDBC DriverであるStelsCSVを使ってみました。それは良いですが、商業的です。同じタスクのための他のツールを知っていますか?
java - JavaでFirebirdとHSQLDBのどちらを選択するか
小さな(5〜6テーブル)デスクトップアプリをJavaで作成したいと思います。Firebird2.1を使いたい。データベース。しかし、私はグーグルでHSQLDBを確認しました。Firebirdとhsqldbのどちらかを決定したいと思います。
では、どのデータベースを使用する必要がありますか?
java - Dialect に基づく Hibernate 基準 API でのさまざまな射影関数の使用
基準 API を使用して構築するクエリで標準偏差投影を使用したいと考えています。私はこのように簡単に何かをすることができます
}
そして、それを私の基準で次のように使用できます。
それはすべて良いです。しかし、私の問題は、db 単体テストなどに HSQLDB を使用しているのに対し、デプロイには Oracle を使用していることです。stddev 関数はオラクルでは完全に機能しますが、HSQLDB にはありません。HSQLDB には stddev_pop と stddev_samp があります。それで、方言に基づいて別の機能を使用できる方法はありますか。
HSQL 方言を拡張して「stddev」を適切な HSQL 関数に登録することはできますが、Criteria API を使用して構築されたクエリで hsql 関数を使用する方法がわかりません。
どんな助けでも大歓迎です。
ありがとう
hsqldb - HSQLDB での完全外部結合の使用
HSQLDB でサポートされている完全外部結合です。私はそれを使用しようとしてきましたが、うまくいきません。私はこのようなことをしようとしています。
- クエリ 1 は、テーブル A からキー、値としてデータを取得します
- クエリ 2 は、キー、値としてテーブル B からデータを取得します。ここで、キーが一致した 2 つの間のデータをクラブし、キーが一致しなかったデータも取得する外部結合が必要でした。外部結合が HSQLDB でサポートされていない場合 (hsqldb を使用しており、データベースを変更できない場合)、これを効率的に実装するために使用する最善の方法は何ですか。
ありがとう。
java - 自動生成されたキーを使用してデータベース アイテムの JUnit テストを作成する
データベースに格納されている主キーを持つクラスがあります。クラスの新しいインスタンスを作成するときは、HSQLDB データベースから取得するか、データベースにないアイテムの場合は主キー以外のすべてを挿入し、これを自動生成してクラスに返して id 属性を設定します。次に、この ID を取得するための getID() メソッドがあります。
生成された ID が getID() メソッドによって返されるものであることを確認する JUnit テストを作成しようとしていますが、既に「CALL IDENTITY」クエリを使用してコンストラクター内の ID を取得し、その後この戻り値 0 を使用しています。生成された ID が getID() メソッドによって返される ID と同じであることを確認する最善の方法は何ですか?
java - HSQLDB-データベース構造/コンテンツをユーザーから隠す
ローカルデータを保存するために、デスクトップアプリでHSQLDBバージョン1.8.xを使用することを検討しています。私が見ることができることから、データベースは、テーブルを作成したり、データを挿入したりするためのいくつかのSQLステートメントとしてディスクに保存されます。
これをユーザーから隠す簡単な方法はありますか?必ずしも完全に暗号化する必要はありません。たとえば、カジュアルなユーザーがファイルを開いてデータベースの構造を確認するのを防ぐためです。