問題タブ [lazy-initialization]

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 投票する
2 に答える
1206 参照

mef - MEFカスタム属性とレイジー

気が狂っていると思います。:)私はこれに2日間苦労しています。コードは正しく見えます。しかし、何らかの理由で[ImportMany]フィールドにアクセスしようとすると、nullになるか、少なくとも値が返されません。

カタログの3つの部分を取得しますが、私が定義しているLazy[]インポートには適用されません。

これが私のコードです:

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

c# - ステートレスセッションを使用したディクショナリ値のレイジールックアップ

私のアプリでは、特定のユーザーについて、そのユーザーに属するオブジェクトの各インスタンスの「設定」を取得できるように、3項辞書マッピングを設定しました。つまり、私は次のようなものを持っています:

したがって、Bazオブジェクトがあるときはいつでも、を介して現在のユーザーのbaz設定を検索できますcurrentUser.BazSettings[baz]

ステートレスセッションを使用してこれを実行できるようにしたいのですが、次のLazyInitializationExceptionコードでを取得します。

代わりにを使用するISessionと、問題は解決します。

完全なNHibernateエラーメッセージには、「セッションまたはセッションが閉じられていません」というテキストが含まれています。ステートレスセッションを使用する場合、エンティティはセッションに接続されないため、これは理にかなっています。ただし、ステートレスセッションを使用してこのルックアップを実行する方法があると思います。

ステートレスセッションを使用してルックアップを実行するにはどうすればよいcurrentUser.BazSettings[baz]ですか?

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

hibernate - Hibernate:作業を多対1のオブジェクトと一時的にマージしますか?

こんにちは私はそれを知っており、マージの前にテストすると、オブジェクトがセッションに再接続され、オブジェクトがセッションに存在しなくなったときに遅延初期化例外が発生するのを防ぎます。

a。)それで私はいくつか質問があります。

私が支払い->顧客(多対1の一方向の関係で)と私がする場合

支払い支払い=Payment.class.cast(session.merge(oldPayment));

顧客オブジェクトもセッションに再接続されますか、それとも顧客に対して別のマージ呼び出しを行う必要がありますか?

b。)支払い->顧客(多対1の双方向関係)の場合はどうなりますか。何が起こるだろう。

c。)3つ以上の階層の関係がある場合はどうでしょうか。
例:ホテル->支払い->顧客。

Hotel hotel = Hotel.class.cast(session.merge(unmergeHotel))を実行した場合、支払いと顧客オブジェクトもセッションにマージされますか?

ありがとう

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

spring - DataTable 後の Bean インジェクション

サービス クラスからデータを読み取るデータ テーブルを含むページがあります。そのサービス クラスは contactDAO で注入されると想定されていますが、すぐには注入されません。実際、ページが最初にロードされるとき、DAO がまだ挿入されていないため、データ テーブルは空です。ただし、addContact() を呼び出すと、それまでに contactDAO が挿入されるため、「連絡先」リストは正常に更新されます。

データテーブルがサービス クラスを使用する必要がある前に、contactDAO が確実に挿入されるようにするにはどうすればよいですか? Spring 3 と JSF 2.0 を使用しています。

データテーブルを含むページはリスト ' ' にバインドされていますcontactServiceImpl.contacts:

私の ContactServiceImpl は次のようになります。

そしてapplicationContext.xml

0 投票する
0 に答える
676 参照

hibernate - LazyInitializationExceptionなしでデタッチされたHibernateプロキシにIDを設定するにはどうすればよいですか?

15を超える関連エンティティ(親)を持つオブジェクトを使用しています。私のUI側では、これらのエンティティのIDのみが必要なので、Hibernateのフェッチ機能は必要ありません。また、レイジープロキシの概念を使用して、データベースへのヒットを回避し、IDが入力されたオブジェクトを作成します。 。

これを実現するには、すべての親エンティティに対してフィールドアクセスの代わりにプロパティアクセスを使用する必要があります。

これまでのところ、データベースからオブジェクトをロードし(追加の結合は作成されません)、すべてのリレーション(最大で単純な選択入力)を使用してWebUIに表示します。UIのクローン(値オブジェクト)を作成せず、デタッチされた休止状態オブジェクトを直接使用します。しかし、UIに変更を加える(親オブジェクトを変更する)と、フレームワークは関連するプロキシエンティティに対してsetId()を呼び出し、....これによりこれらのプロキシが初期化されます。これを行うHibernateBasicLazyInitializerのコードは次のとおりです。

そして、LazyInitializationExceptionが発生します(確かに、この時点ではセッションがありません!)。

それで、データベースからフェッチされたすべてのエンティティの値オブジェクトを作成せずにこれを行うためのアプローチはありますか?私は常にUIでデータオブジェクトを直接使用していましたが、それらはすべて完全にフェッチされており(プロキシではありません)、これらのプロキシで現在のような問題は発生していません...

なぜHibernateが@IDフィールドの設定時にプロキシの初期化を行うのか(取得にはしませんが)、私は本当に理解していません...

前もって感謝します!

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

javascript - JavaScript遅延初期化の長所と短所

こんにちは、オブジェクトが使用されている場合にのみスクリプトがロードされるときに、javascript の遅延初期化を考慮した長所と短所を聞きたいと思いました。どんなコメントでも大歓迎です。

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

coffeescript - CoffeeScript 遅延関数の実装

JavaScriptでこのようなことをしたい

CoffeeScript は最初の init に別のローカル var init を追加するため、2 番目の init が最初の init を上書きしません。

解決策/回避策のヒントをいただければ幸いです。

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

hibernate - アノテーションを使用するモジュール化された Spring アプリケーションで、Hibernate 3 の「親」アプリケーションコンテキストにセッションが定義されていないため、LazyInitializationException が発生する

私は Hibernate3 と Spring3 の両方にかなり慣れていませんが、休止状態オブジェクトの遅延参照の初期化に関連する問題があります。

私は完全に含まれているdaoとサービスを持っています。ドメイン オブジェクトは、hbm2java とリバース エンジニアリング ファイルを使用して作成されます。サービス オブジェクトで注釈 (@Transactional) を使用して見つけたいくつかのベスト プラクティスに従いました。(このガイドは私にとって非常に役に立ちましたhttp://carinae.net/2009/11/layered-architecture-with-hibernate-and-spring-3/ )

私が抱えている問題は、アノテーション処理とトランザクション管理のために、service.jar に次のスプリング構成があることです。

私の hibernate.cfg.xml は、データソースの詳細とドメイン オブジェクトの注釈マッピングの単なるリストです。

サービスレイヤーとdaoレイヤーを使用しています。

そしてdaoレイヤー

このコードのコレクションは、maven モジュールとしてパッケージ化されており、私が開発しているスケジューリングおよびワークフロー モジュールである別の spring プロジェクトに依存関係として含まれています。関連する applicationContext.xml 情報

そして、基本的な Workflow.java:

LOG.info ステートメントの実行中に LazyInitializationException が発生しました (なぜ取得したのか理解しています)。トランザクションは、含まれているサービス maven 依存関係の spring-hibernate コンテキストによって管理され、このコンテキストでは使用できません。私が理解していないのは、LazyInitializationException を防ぐためにトランザクション管理をこのレイヤー (およびそれ以降) に含める適切な方法です。単純に追加してみました

ビジネス層のアプリケーション コンテキストに、サービスの依存関係で定義されたトランザクション マネージャーが表示されないことを訴えました。ただし、ワークフローステッパーの .execute() に @Transactional を追加すると、依存関係から構成が「継承」されます。

私は何が欠けていますか?

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

hibernate - grails プロパティが遅延しているか初期化されていないかどうかをテストしますか?

オブジェクトが遅延初期化されているかどうかをテストできないようです。ここで何が間違っていますか?

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

java - Hibernate で熱心なインスタンス化を使用するにはどうすればよいですか?

それが私のマッピングクラスです。
インスタンス化を呼び出すコードは次のとおりです。

これは listandCastMethod です:

そして、私は取得し続けます:

しかし、問題は、この例外が発生した項目セットを除いて、Proiect クラスのフィールドが入力されていることですが、項目セットを入力したいのですが、どうすればそれを行うことができますか?