問題タブ [eager]

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

grails - Grails Eagerが空の関連付けをフェッチするとnullが返される

次のようなドメインクラスがあります

今、私は著者を取得しようとしています

現在、この著者が書籍を持っていない場合、つまり、書籍の関連付けが空の場合、返される authorInstance は null です。

よくわかりませんが、これはlazyListが原因で発生していると思います(lazyListを使用している理由は、データバインディングを簡単にするためです)。

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

hibernate - Hibernate: Eager fetching / 冬眠中の悪夢を乗り切るのを手伝って

次の HQL ステートメントでオブジェクトのリストを返そうとしています:

次のエラーは私を怒らせます:

HTTP ステータス 500 - クエリで結合フェッチが指定されましたが、フェッチされた関連付けの所有者が選択リストに存在しませんでした

そこで、コードに「fetch」という単語を入れずに試してみました。それから私の返すリストは空です。

アプリケーションは Doodle のようなもので、データベースは次のようになります。

Survey にはリスト surveyDates
があります SurveyDate には回答のリスト
があります Response には属性 user があります

私の仕事は次のとおりです。メソッドにはパラメーター surveyId があり、それに応答したすべてのユーザーを返します。したがって、調査 --> 調査日 --> 回答 --> ユーザー

私はあなたにとって非常に簡単だと思います.私はSQLが初めてで、Hibernateも初めてです!

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

java - データベース全体を Hibernate でロードする

SQLite3 と Hibernate with Java を使用しています。マップされたオブジェクトに最速でアクセスできるように、どうにかしてデータベース全体をメモリにロードしたり、データベースからすべてのデータをフェッチしたりできますか? たとえば、Company クラスと Employee クラスがあり、Company で Employees を company.getEmployees() としてマッピングしたとします。データベースからすべての会社を取得したいのですが、後でこのメソッドを呼び出すとすぐに従業員を取得したいと思います。それらをプリロードする方法はありますか?さらに、従業員が他のオブジェクトにマップされている場合、それらもプリロードできますか? 要約すると、データベース全体をロードし、ORM を使用してデータにアクセスしたいと思います。ありがとう!

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

laravel - Laravel Eagerがfirst()/ all()でチェーンされたときに欠落している関係をロードする

L3 を使用すると、次のように動作します。

それはまさに私が期待するものを返します。サービス関係がすべてきちんと設定Siteされたオブジェクトの配列。

ただし、代わりに次のもののみを使用する場合:

また

サイト オブジェクトの関係は完全に空です。

それは私にはバグのように感じますが、私がやろうとしていることには何か問題がありますか? 現時点ではfirst()、代わりに使用するのと同じ効果を得るにget()は、返された配列から最初の要素を取得する必要があります。

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

arraylist - 他のオブジェクトの ArrayLists を含むオブジェクトで ORMLite を使用するにはどうすればよいですか?

私は、他の複雑なデータ型の ArrayLists を含む非常に複雑なデータ型を持つ Android Java プロジェクトを持っています。ORMLite (4.42) を使用してデータベースにデータを保存しようとしています。

ArrayLists と ForeignCollection 間の変換に大きな問題があります。これを行うことができた人はいますか?

データベースとの継続的な同期は必要ありません。代わりに、構造全体を保存する save メソッドと、メソッド全体を復元する read メソッドがあります。オブジェクトがデータベースから復元された後、受信側が orm lite の ForeignCollection ではなく ArrayList を予期するインターフェイスを介してオブジェクトが送信されます。

私のアプローチは次のとおりです。ArrayList ごとに、補完的な ForeignCollection があります。オブジェクトをデータベースに格納する前に、ArrayList の内容が ForeignCollection にコピーされ、読み戻されるとその逆になります。

データベースからデータ構造を読み取るとき、後で orm lite パッケージを知らないユーザーにオブジェクトが送信されるため、構造全体が確実に復元されるようにしたいので、eager = true を設定します。

私の複雑なデータ型は次のようになります。

問題

アカウントをデータベースに保存する前に、次のことを試みました。私の希望は、ArrayList 内のオブジェクトを ForeignCollection にコピーし、Account オブジェクトでデータベースを更新することでした。オブジェクト myAccount はデータベース内のオブジェクトと同じ ID を持っているため、そのオブジェクトの更新が必要です。

運がない。addAll メソッドは注文をデータベースに直接書き込むため、「addAll」は既存のレコードを追加して更新しないため、すべての注文が重複することになります。

そこで、最初にデータベースからすべての注文を削除しようとしましたが、やはりうまくいきませんでした:

オブジェクトはデータベースから削除されません。groups.google.com (by Philip Fu)で、これは ormlite の「既知の」問題であり、熱心な ForeignCollection は removeAll() または clear() でうまく機能しないことを読みました。

ormlite フレームワークを使用して複雑な型の ArrayLists を含むオブジェクトを操作できるようにする、私が見逃したパターンはありますか?

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

jpa - JPA EAGERフェッチは、サーバーが再起動された場合にのみ機能します

みなさん、こんばんは、これがStackOverflowに関する私の最初の投稿です。私はごく最近、Java 6 EE、特にJSF 2.1フレームワークの一部としてJPAを紹介されましたが、今、私が理解してほしい奇妙な振る舞いに直面しています。私たちのプロジェクト(NetBeans 7.2を使用して開発)では、いくつかの1対多の関係があり、多対1の関係をナビゲートするのと同じ方法でそれらをナビゲートしたいと思います。実際には、代わりに、アプリケーションサーバー(Glassfish 3.1.2)を再起動した後でのみ、必要に応じて動作させることができます。さらに、この動作は次のデプロイメントまでしか持続しません。つまり、変更を適用するたびにGlassfishを再起動する必要があります...状況を理解するのに役立つコードの抜粋を次に示します。

これは、とりわけ、Eメールおよび電話との1対多の関係、およびAccountTypeとの多対1の関係を持つ主要なエンティティ(Person)を表します。

そして、これらは電子メールです...

... 電話 ...

...およびAccountType

次に、Personの3つのフィールドが実際にどのようにフェッチされるかをテストするためのサンプルページを設定しました。

これはxhtmlページを表します...

...そしてこれはコントローラー

これで、アプリケーションサーバーを再起動した直後にページにアクセスした場合にのみ期待される結果が得られます。

何か(ビューを除く)を変更して保存すると、必然的なデプロイの後で、結果は異なります。

なぜそれが起こっているのですか、そしてどうすればそれを避けることができますか?

前もって感謝します。

AG

数人の寄稿者(迅速な返信に感謝したい)がPersonFacadeの実装を求めました。

As you can see I tried to use FETCH JOIN as suggested but the query is getting out too many results: it should fetch only one instance of Person representing Alice and containing two instances of Email in the personEmails field but I suspect it is getting two different instances of Person, each having a different instance of Email attached.

The original query was as follows:

Thanks again.

AG

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

nhibernate - NHibernate - このコレクションが初期化されていない/熱心にフェッチされているのはなぜですか?

これを考慮して:

続いてこれ

そのデバッグ ステートメントによって NHibernate が戻って Response コレクションを再クエリするようになるのはなぜですか?最初のクエリで初期化されたのは確かですか?

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

hibernate - Hibernate/JPA が熱心な読み込みを実行できない

Spring MVC、Hibernate、および JPA を使用します。コントローラーからコレクションをロードしようとしたところ、LazyLoading Exception が発生しました。そこで、Egar ローディングに切り替えたいと思いました。

私は2つのクラスを持っています(多対多のRealtionにあるFlightrouteとMeasurstations)


しかし、これは機能していないようです。アプリケーションの起動時に次の例外が発生します

May 03, 2013 5:58:08 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: クラス org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException のリスナー インスタンスにコンテキスト初期化イベントを送信する例外: ServletContext リソース [/WEB-INF/applicationContext.xml] で定義された名前 'entityManagerFactory' の Bean の作成中にエラーが発生しました: init メソッドの呼び出しに失敗しました。ネストされた例外は javax.persistence.PersistenceException: [PersistenceUnit: atm] Unable to build EntityManagerFactory at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1488) at org.springframework.beans.factory.support です。 AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:

わかりません。誰か助けてくれますか、なぜこれが起こったのか説明できますか?

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

hibernate - Grails の LazyInitializationException

グレイル 2.2.1

私のシンプルなドメイン:

1 対多の photoGallery は遅延フェッチされます

getMainPhoto.gsp ビューからメソッドを呼び出します。問題は、怠惰な 1 対多のフォト ギャラリーからメインの写真を取得しようとすると、(常にではありませんが) 時々エラーが発生することですLazyInitializationException

そのメソッドを呼び出すたびにではなく、これが時々発生するのはなぜですか? それは正常ですか?そして、関係を熱心に取得せずに、どうすればそれを修正できますか?

ありがとう

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

hibernate - hibernate 1 対多の関連付け: サブセレクトまたは熱心

Grails アプリケーションでは、デフォルトで遅延している関係があります。

著者を取得する基準 API クエリがあります。クエリを実行すると

私は著者ごとに N+1 個のサブセレクトを持っています。

私の 2 番目のアプローチは、次のように本を熱心にフェッチすることです。

この場合、N+1 選択の問題は発生しませんが、JOIN クエリがあります。

パフォーマンスと最適化の点でどちらのアプローチが優れていますか?