0

以前は EAR に EJB と PersistenceUnit を含む 1 つのプロジェクトがありましたが、問題なく動作し、クエリは << 1 秒で実行されました。

追加の EJB プロジェクトを作成し、それに新しい PU を定義すると、EAR プロジェクト全体で、エンティティの取得を伴うクエリが非常にゆっくりと実行されます。

例えば:

em.find(Record.class, "SomeID")完了するまでに最大 10 秒かかります。

SELECT r FROM Record r WHERE r.ID = :ID

完了するのにほぼ同じ時間がfindかかり、〜10000のデータを含む他のすべてのテーブルはほぼ同じ時間がかかりますが、

SELECT r.somePrimitiveAttribute FROM Record r WHERE r.ID = :ID

ミリ秒しかかかりません。

persistence.xml では、データベースの url/password/username とクラス名のリストを他のパラメーターなしで指定しました。

クエリは Web ページのレンダリングを 1 ページあたり約 10 秒まで遅延させるため、テストでも受け入れられません。EclipseLink 2.3.x の速度低下を防ぐためにどの設定を使用すればよいか、誰か提案できますか? 必要に応じて、可能な限り詳細を提供します。

4

1 に答える 1

0

データベースの正しい方言を persistence.xml に設定してみてください。

于 2013-10-12T20:39:00.270 に答える