問題タブ [sessionfactory]

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.

0 投票する
3 に答える
25514 参照

java - Spring + Hibernateとアノテーション:スレッドにバインドされたHibernateセッションはありません

私はSpringを初めて使用し、次のスタックを使用してWebアプリを作成しようとしていました:Apache Tomcat 7、MySQL、Spring MVC、JPAアノテーション付きのHibernate3。

クレイグ・ウォールスの「Spring in Action、ThirdEdition」という本を読んで学ぼうとしています。

最初に、DBに手動で追加したいくつかのエントリを表示するページを作成したかったのですが、アプリケーションがSessionFactoryからHibernateセッションを作成/取得できないようです。これが私の根本原因スタックトレースです:

そして、これが私の懸念するクラス/構成ファイルです:

私のHibernateDAO:

私の連絡先クラス:

私のコントローラークラス:

これが私のContextDataConfigファイルです:

これが私のディスパッチャーサーブレットの設定です。

そして最後に、これが私のweb.xmlファイルです。

0 投票する
2 に答える
3241 参照

hibernate - Hibernate と Spring - ロード操作はトリックを実行し、更新/削除操作は実行しません

私はこのチュートリアルに従っています: http://www.scribd.com/doc/25244173/Java-Struts-Spring-Hibernate-Tutorial セットアップ (前述) はチュートリアル ファイルで正常に機能していましたが、変更-削除/更新アクションは発生しません。エラーや癖はありません。完全に無視されます。データの取得に関しては、すべてが完全に機能します..

tut のほとんどすべてのファイルは同じですが、これらの違いがあります。このチュートリアルでは、サービス ファイルを使用します。

Services.java

親コントローラーと HibernateUtil への静的呼び出しを使用して、ファイルを分離しようとしました: HibernateUtil.java

BaseController.java

EventController.java

そして春のapplicationContext.xml

0 投票する
1 に答える
2184 参照

hibernate - 分散Ehcacheを使用して同じdbスキーマで複数のHibernateSessionFactoriesを実行する方法

n個のクライアント(現時点では55個)のシステムがあり、各クライアントはまったく同じスキーマを持つ独自のデータベースを取得します。分散ehca​​cheに支えられたhibernate3.6.1を実行しています。これは、実行時に「怠惰に」jvm(HashMapに格納されている)ごとにクライアントごとに1つのSessionFactoryを作成するSessionFactoryServiceを介してデータベースごとにSessionFactoryで実装されているため、SessionFactoriesのアプリケーション管理セットを実行しています。基本的な休止状態の構成ファイルが1つあり、残りの設定は作成時にプログラムで実行されます。私たちのリポジトリ(またはより一般的に呼ばれるDAO)には、SessionFactoryServiceを介してSessionFactoryへのアクセスが許可されます。配布されているSingltonEhcacheRegionFactoryに裏打ちされたHibernateの第2レベルのキャッシュを最大限に活用しています。jvmごとにn個のSessionFactoriesを実行しているため、キャッシュ間の同期を維持しようとしている間、SessionFactories間のjvm間通信が多すぎるため、非SingltonEhacheRegionFactory(つまり、SessionFactoryごとにCacheManagerを持つ)は必要ありません。したがって、必要なのはサーバー間の通信のみであり、サーバー内の通信ではありません。これは、SingltonEhcacheRegionFactoryを介して実現されています。

さて、ここから楽しみが始まります。上記の設定では、データベーススキーマとして一意のキーを保証する方法がないため、キャッシュの衝突が発生します。したがって、それらをサポートするエンティティオブジェクトはSessionFactories全体で同じです。それらを一意にするために、上記のプログラム構成手順を使用して、フィールドhibernate.cache.region_pre-fixをSessionFactoryごとに一意の値に設定しました。これは、第2レベルのキャッシュに関するHibernateの見解を満たしていますが、基盤となるシングルトンehcacheに問題があります。ehache.xml構成ファイルで指定された構成のキャッシュ名にキャッシュプレフィックスがないため、正しい構成を見つけることができません(また、プレフィックスごとにキャッシュ構成ごとに重複するエントリが必要になるため、 n個あります)。これにより、以下のエラーが発生します。

10:37:38,389警告AbstractEhcacheRegionFactory:201-Hibernate構成にTransactionManagerLookupが見つかりません。XAキャッシュは2フェーズコミットに参加します!10:37:39,675警告AbstractEhcacheRegionFactory:143-[some_prefix.adc]という名前のキャッシュの特定のehcache構成が見つかりませんでした。デフォルトを使用します。10:37:40,328警告AbstractEhcacheRegionFactory:143-[some_prefix.org.hibernate.cache.UpdateTimestampsCache]という名前のキャッシュの特定のehcache構成が見つかりませんでした。デフォルトを使用します。10:37:40,331警告AbstractEhcacheRegionFactory:143-[some_prefix.org.hibernate.cache.StandardQueryCache]という名前のキャッシュの特定のehcache構成が見つかりませんでした。デフォルトを使用します。

したがって、問題は、jvm環境ごとに分散された単一のehcacheを使用して複数のSessionFactoryをどのように実現できるかということです。リージョンプレフィックス対応になるようにehcacheを構成する方法はありますか?私たちが実装したソリューションは、せいぜいハッキーです。SingltonEhcacheRegionFactoryを拡張する独自のhibernate.cache.region.factory_classを実装しました(そして、hibernateキャッシュ領域プレフィックス構成を削除しました)。私たちの実装は、基盤となるEhcacheへのメソッド呼び出しをインターセプトし、キャッシュ操作に使用されるすべてのキーにプレフィックスを追加するだけで、キャッシュの衝突を防ぎます。より「すぐに使える」ソリューションが必要であり、明らかな理由から、それは機能しますが、実装したものは理想的ではありません。私はその問題についておそらく見つけることができるすべてを読みましたが、tは、分散された第2レベルのキャッシュを使用して、同じスキーマで(そして最も重要なことに)複数のSessionFactoriesに対処するソリューションを見つけました。任意のアイデア、解決策、またはアドバイスをいただければ幸いです。誰かが要件に対処するための良い方法を持っているなら、私はまったく異なる設計を受け入れることさえできます。前もって感謝します!

0 投票する
1 に答える
1684 参照

fluent-nhibernate - このスレッドセーフにする方法

Fluent NHibernate 用の次の SessionFactory があります。

次のエラーが表示されます

SessionFactory の作成中に、無効または不完全な構成が使用されました。

のInnerExceptionで

同じキーを持つアイテムが既に追加されています。

この問題はたまにしか発生せず、ほとんどの場合、アプリケーションは正常に動作します。

NHibernateに基づく: System.Argument Exception : An item with the same key has already been added私のクラスは、このエラーの断続的な性質を説明するスレッドセーフではないと推測しています。

0 投票する
1 に答える
1022 参照

nhibernate - 複数の nHibernate セッション ファクトリを持つ StructureMap の名前付きシングルトン インスタンス (StructureMap 2.5.4)

StructureMap の名前付きシングルトン インスタンス (複数の nHibernate セッション ファクトリ) で説明されているのとまったく同じシナリオがあります。

StructureMap 2.6.2 を使用してこれを実装すると、素晴らしいです。

ただし、最新の .NET フレームワーク バージョンを使用できないレガシー プロジェクトに関連するさまざまな要因と、その他のいくつかの理由により、現在 StructureMap 2.5.4 を使用する必要があります。この質問については、当分の間アップグレードできないと仮定してください。

2.5.4 は明らかに構文が 2.6.2 とはかなり異なり、その API を使用して同じことを実装する方法がわかりません。

具体的には、このようなものです

...関連する構成を作成する CreateSessionFactory(string) というメソッドを使用します。

"Add" とそれに続く "GetInstance" は無効であり、2.5.4 で動作するようにリファクタリングする必要があります - 私は愚かすぎてどうやって解決するか、または実際に同じことを達成できるかどうかを判断できません。

乾杯

0 投票する
8 に答える
148991 参照

java - HibernateSessionFactoryとJPAEntityManagerFactory

私はHibernateを初めて使用しますが、Hibernateを使用するかSessionFactoryJPAEntityManagerFactoryを使用してHibernateを作成するかがわかりませんSession

これら2つの違いは何ですか?それらのそれぞれを使用することの長所と短所は何ですか?

0 投票する
2 に答える
1052 参照

nhibernate - 流暢なNHibernate?私はこれを正しく行っていますか?

FluentNHibernateとNHibernateを初めて使用するのは初めてです。私は2000年頃から、社内で作成されたカスタムのマッパーを使用しています。約2年前にLinqToSQLに切り替え、約6か月前にエンティティに切り替えました。

Fluent/NHibernateが提供するものを見たいです。しかし、正しく動作させることができないようです。以下は私のクラス、それらの参照、ClassMapsのコピーです。この単純な実装が正しいかどうか誰かに教えてもらえますか?

これは私のマッピングとオブジェクトクラスです:

これは私のリポジトリです:

config.BuildSessionFactory()に到達するたびに、次のエラーがスローされます。

SessionFactoryの作成中に、無効または不完全な構成が使用されました。

内部例外は次のとおりです。

呼び出しのターゲットによって例外がスローされました。

これはこれにアプローチする正しい方法ですか?任意のアイデアや微調整をいただければ幸いです。

0 投票する
3 に答える
4794 参照

c# - バックグラウンドワーカーを使用したWebアプリケーションのNhibernateセッション管理戦略?

Web アプリケーションの場合、セッションを処理する良い方法は、Begin/EndRequest<property name="current_session_context_class">managed_web</property>の呼び出し設定を使用することです。CurrentSessionContext.Bind/Unbindその後sessionFactory.GetCurrentSession()、リポジトリ クラスで使用できます。

これは、すべてのページ要求に対して正常に機能します。しかし、私はバックグラウンド ワーカーが作業を行っており、同じリポジトリ クラスを使用して作業を行っています。これらは Web リクエスト内では実行されないため、セッション処理は機能しません。

これを解決する方法について何か提案はありますか?

0 投票する
3 に答える
424 参照

nhibernate - NHibernate: セッション ファクトリの構築にはデータベースへの接続が必要ですか?

データベースを新しいサーバーに移行した後、作業コピーがデータベースに接続できなくなりました。しかし、私は予期していなかった何かを経験しています。アプリケーションのページがこのデータベースに接続しようとすると、セッション ファクトリの構築中、つまり ISession による明示的な接続 (エンティティのロードなど) の前にエラーが発生します。

これは正しいですか?セッション ファクトリの構築にデータベースへの接続が必要なのはなぜですか?

0 投票する
1 に答える
372 参照

nhibernate - NHibernate:SchemaExportを使用してデータベースを再作成

データベースの再作成を正しく処理することについて質問があります。

私の開発環境では、次を使用してデータベースを再作成することがよくあります。

(私はhiloジェネレーターを使用していることに注意する必要があります。)データベースを再作成した直後に、" Cannot insert duplicate key..."例外のために新しいエンティティの保存が失敗することがあります。

私の質問:新しいhiloを使用するデータベースと正しく同期するには、セッションファクトリ(および場合によってはセッション)を再初期化する 必要がありますか?それともそのまま動作しますか?

ヒントは大歓迎です!

LG
ワラッパ