1

JPA/Hibernate のパフォーマンスについて質問があります。

目標の 1 つは、質問とその回答を保存することです。これらの両方について、クラス階層があり@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)ます。

質問には回答への参照があり、すべての質問はいくつかのリストに保存されます。

firebug を使用して、新しい質問をリストに追加して使用するときにentityManager.merge、応答を約 1 秒待つ必要があることを確認しました。単純な追加リクエストの応答を待つのはかなり長いと思います。

継承戦略が原因なのか、それとも、使用entityManager.mergeして独自のクエリを作成しようとするべきではないのかもしれません。

SQL lite データベースを使用しているため、パフォーマンスが低いのではないでしょうか (SQL lite はテストのためだけに使用され、本番環境では postgre が使用されます)。

または、この種のパフォーマンスは、ORM ソリューションではかなり標準的です。

4

1 に答える 1

0

私は sqlite を頻繁に使用しており (場合によっては本番環境でも)、パフォーマンスが従来のクライアント サーバー接続よりも優れている場合があります。

おそらく、アプリケーションをデバッグし、使用している JPA プロバイダーのロギングを有効にして、実際に継承モデルに問題があるかどうかを確認する必要があります。

しかし、継承を正しく行っていれば、それは問題ではないと思います。クラスの宣言方法のコードを貼り付けていただけると助かります。

これが続く場合は、プロファイラーも調べます。

于 2012-08-26T04:42:03.067 に答える