5

私の仕事では、サーバー側でexidirect、休止状態、クライアント側でextjsでSpringを使用しています。フォームを投稿すると、サーバー側でスプリングがフォームをエンティティに変換します。エンティティには、更新操作を想定した id フィールドがあります。サービス保存メソッドを呼び出していますが、代わりに 1 つの SQL更新クエリで多くの選択クエリを取得してから更新します。時間がかかります。そして、この操作は必要ありません。同様の質問を探していて、永続化方法を使用しようとしていました。この場合、エラーが発生します: detached entity passed to persist.

私は休止状態の十分な経験がありません。関連するエンティティ (OneToMany、ManyToOne、およびカスケード型) を構成する必要があるかもしれません。エンティティは Spring roo ツールによって生成されます。

助言がありますか ?ありがとうございました。

4

2 に答える 2

7

これはあなたの質問に対する最終的な回答ではありませんが、高レベルのガイドラインとして機能することを願っています.

Spring でエンティティを作成すると、そのエンティティはデタッチされ、Hibernate はエンティティを永続化する前にエンティティをアタッチする必要があるため、これらの SELECT ステートメントを実行します。さらに、私の知る限り、エンティティをアタッチしようとすると、SELECT ステートメントがトリガーされます。したがって、これらの SELECT ステートメントなしでは、切り離されたエンティティを保存/永続化する方法はないと強く信じています (ここで間違っている可能性があります)

パフォーマンスが気になる場合は、アプリケーションにキャッシュ機能を追加してみてください。さらに、パフォーマンスが低下している操作にのみ JDBC ソリューションを含めることもできます。

于 2013-04-30T18:22:02.497 に答える