0

すべてのSpringRooバニラコントローラーとオブジェクトを使用して、たとえば/ project / something?page = N&size = Mをリクエストするたびに、休止状態ログに3つのリクエストが表示されます。最初にすべてのエントリをフェッチするSELECTがあり、次にLIMITとOFFSET、続いてSELECTカウント。

すべてのエントリをフェッチするこの最初の選択があるのはなぜですか?テーブルに多くのエントリがある場合、パフォーマンスが非常に悪くなるため、これを削除したいと思います。

それは冬眠ですか、それとも春のルーに関連していますか?

最新のroo&hibernateを使用しています。

4

1 に答える 1

1

わかりました、見つけました!

Roo 1.1.5は、実際のコントローラーメソッドが呼び出される前であっても、すべてのCRUDリクエストでpopulateメソッドを呼び出します。Populateメソッドは、dbからすべてのエントリをフェッチします。これにより、非常に過負荷になり、Webアプリがまったく使用できなくなり、マネージャーの前で見栄えが悪くなります:(

自分でpopulateメソッドを実装し、すべての血まみれのエントリをフェッチする以外のことを実行させることです(注意して使用すると、他のものが機能しなくなる可能性があり、作成/更新を監視する可能性があります)。たとえば、nullなどを返します。

これはバグおよびSpringJiraとしても報告されており、Roo 1.2.0で修正されたように見えるため、より良い解決策はアップグレードすることです。

于 2012-05-05T15:26:26.087 に答える