私はデータを取得するために休止状態の基準APIを使用しています。これらのデータは、ユーザーが見ただけです。ユーザーはこれらのデータを変更できません。だから、readOnlyを使うことで何か利点はありますか?あなたはプロの&を提案することができますか?考慮すべき他の尺度はありますか?休止状態でreadOnlyを使用すると、パフォーマンス上の利点はありますか?
答えて
Hibernateは修正を見つけて、あなたはセッションをフラッシュしたときにすべての変更を永続化するために、セッション内でロードされたすべてのオブジェクトを追跡しています。エンティティを読み込み専用としてロードする場合、Hibernateにそのエンティティの変更をトレースさせないように指示します。このようにして、パフォーマンスが向上します。
ただし、オブジェクトはセッションキャッシュに残ります。キャッシュが大きすぎると、大きな問題となります。また、メモリ不足のリスクもあります。多くのオブジェクトを読んだら、それらを追い払うのは良いことです。
Hibernateのパフォーマンスが実際に問題になる場合は、純粋なJDBCに切り替えるほうが良い方法です。大量のデータをロードするためにHibernateを使用することは決してありません(レポートやバッチ処理など)。リストを表示するためには、エンティティ全体ではなく、必要なフィールドだけを読み込みます(選択したフィールドだけを読み込み、エンティティ全体ではなく、常に読み込み専用です)。
答えは、はいです。これにより、Hibernateは少し速くなりますが、さらにパフォーマンスを上げるための他の方法があります。
必要なフィールドを持つリストを表示するために、hibernateを持つdbビューを使用しています。読み取り専用オブジェクトは常にキャッシュに残りますか?追い出されないのですか? – nayakam
読み取り専用エンティティを使用する方が、目的式の表現によく似ています。読み込み専用を使うことで、変更されてもエンティティが変更されたかどうかは確認されません。これは、変更に対して保護されているため、変更不可とマークされたエンティティとは異なります。 Hibernateは、不変のエンティティオブジェクトのプロパティが変更されたことを検出するとエラーになりますが、読み取り専用のエンティティは変更されません。
エンティティの読み取りのみを行うと、変更を永続させたくないという旨のハイバネーションが通知されます。関連するコレクションの場合には、これは当てはまらないかもしれません。
特殊な要件があるか、特別な高価な汚れチェックを行わない限り、パフォーマンスの向上は最小限に抑えられます。
パフォーマンスに関してではありません。これは、オブジェクトの意図しない変更からデータベースを保護するための安全対策です。
たとえば、地理的な場所を示すロケーションエンティティがあります。今、人がいて、それに場所を割り当てる。人物協会を使用して場所を読み込むときは、場所を読み取り専用にすることができます。また、同僚(またはあなた自身)が事故によって場所を誤って変更した場合でも場所を変更することができます。変更は保存されませんが、Personエンティティへの変更はそのまま残ります。 (場所を不変としてマークするのが最善かもしれませんが、まれなケースがありますが、これでは不十分です)
- 1. 休止状態でラクダコンポーネントを使用する利点はありますか?
- 2. 休止状態のセッションが休止状態でヌルである
- 3. 休止状態での名前付きクエリの利点は?
- 4. PHPでオブジェクトを使用するとパフォーマンス上の利点はありますか?
- 5. 休止状態で休止状態
- 6. 休止状態でのパフォーマンスの問題
- 7. `unreachable!` vs `panic!`を使用するとパフォーマンス上の利点はありますか?
- 8. 休止状態のJDBCトランザクションを休止状態のトランザクションから切り離す
- 9. 休止状態:休止状態の接続を変更する
- 10. と休止状態
- 11. マルチスレッドソケットサーバでの休止状態の使用
- 12. マッピングバイト[]休止状態にあるとチャンク
- 13. は休止状態
- 14. は休止状態
- 15. 休止状態:私は休止状態を勉強
- 16. Javabeansを休止状態で使用できますか?
- 17. 休止状態:AnnotationConfigurationインスタンスを使用する必要があります...エラー
- 18. 休止状態:
- 19. (休止状態)
- 20. 休止状態
- 21. 休止状態:
- 22. Angularのコンポーネントスタイルカプセル化にパフォーマンス上の利点はありますか?
- 23. 休止状態でトップレベルのコレクションを使用するには?
- 24. Javaの春/休止状態:criteria.listを使用して上のNullpointException()
- 25. 休止状態でのパラメータの再利用Restrictions.sqlRestriction?
- 26. okhttp3でクッキーを使用すると、CookieJarはインターセプターよりもパフォーマンス上の利点がありますか?
- 27. プライベートフィールドへのアクセスを休止状態にする方法はありますか?
- 28. 休止状態Enversは、私が休止状態-envers 4.1.8.Finalを使用するモード
- 29. Oracleストアドプロシージャと休止状態
- 30. Struts1春と休止状態
デタッチされたインスタンスまたは管理されたインスタンスについてお話ししていますか?階層化されたアーキテクチャのWebアプリケーションですか?ユーザーが、APIを使用してアプリケーションの通常の非技術的ユーザー(ビューレイヤとやりとりする)にアクセスする開発者を意味していますか? – Thihara