問題タブ [hibernate-session]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 春に休止状態のセッションを管理する方法
このアプリケーションの実行中にセッションを閉じると、どのような影響があり、これが本番環境に移行した場合に問題があります。
運用サーバーで 2 つの問題に直面しており、アプリケーションの使用中に起動するだけで約 800MB のメモリを大量に消費します。
しばらくすると、メモリ不足エラーが発生し、サーバーがクラッシュします
アプリケーションのデプロイにTomcatサーバーを使用しています
私のコードはこれです
セッションを閉じると、遅延初期化により、セッションが既に閉じられているというエラーが発生します。
この問題を解決するのを手伝ってください。春の設定で休止状態で開いているセッションを処理する方法私は休止状態 3.6.1 と春 3.0.6 を使用しています。
hibernate - 最初のレコードを挿入した後、createSQLQuery(sql).executeUpdate() が機能しない
以下のメソッドを呼び出しており、ストアド プロシージャを介してテーブルにレコードを挿入する必要があります。
私のローカルマシンでは、更新は常に機能します。を挿入した後、サーバーの更新を停止します。
記録。例外は出力されません。
私の方法
渡すSQLは
SP_UPDATE_STATUS(NOW(),'value1',NOW(),'value1',1,'summary',) を呼び出す
java - Spring @Async: LAZY コレクションの null 休止状態セッション
@Async
サービス層メソッドで注釈を使用しています。
@OneToMany コレクション フィールドを EAGERLY ロードするとすべて正常に動作しますが、LAZY ロードされた要素にアクセスしようとすると、HibernateSessionImplementor
オブジェクトsession
が null であることがわかりました。それは明らかに私に例外を与えます:
ここに私のコレクションフィールドがあります:
@Async
コンテキスト内でオブジェクトを遅延ロードするために休止状態セッションをバインドするにはどうすればよいですか?
編集
これが私のtrancactionManager/entityManager構成です
java - Spring 構成で休止状態セッションを手動で開く
私が抱えている問題は、Spring を使用して Web アプリケーションの休止状態を管理およびロードすることです。現在、OpenSessionInViewFilter を使用しています。これは、アプリケーションを表示しているときは意図したとおりに機能しますが、Quartz タスクや一部のタスクを支援するために作成した Runnable スレッドなど、ビューに関連しないアクティビティから hibernate にアクセスしようとすると、うまく機能しません。これにより、Lazy 初期化例外が発生し、セッションを使用できない例外が発生します。
現在Springを使用してHibernateを管理する方法は次のとおりです
次に、HibernateDaoSupport を拡張してサービス クラスに挿入する DAO オブジェクトを構成します。
次に、私のアプリケーションでは、myService がコントローラー クラスに挿入されるので、それを使用して DAO にアクセスします。私の状況では、サービスクラスはビューセッション中にのみ開いているように見えるため、他の方法でDAO(またはできればサービス)にアクセスし、手動で休止状態セッションを開いたり閉じたりする必要があるようです。これを行う最善の方法が正確にはわかりません。すべての休止状態の構成はSpringに既に存在するため、それは単なる問題であるか、何らかの方法でそれらを呼び出していると想定しています。
hibernate - Hibernate Session がシングルスレッドであるとはどういう意味ですか?
Hibernateのドキュメントによると、それorg.hibernate.Session
はシングルスレッドの作業単位を表します。作業単位が DB トランザクションのコンテキストで使用されることを理解しています。シングルスレッドとはどういう意味ですか? これを理解するのを手伝ってください。