2017-03-09 5 views
0

他のテーブルとの複数の結合を行うクエリがあります。あまりにも多くの列のデータを返すので、返されたときに904エラーが発生します。また、「結合フェッチ」も使用しています。結合してフェッチして返すデータを返す

「フェッチ」なしで「結合」を使用すると、すべてではなくメインテーブルが返されることがあります。私の質問は、1. Join vs Join Fetchで返されないので、後続のテーブルデータにアクセスできるようになりますか? 2.データがまだオブジェクトを休止状態にマップしている間に(私はそれがリストになると読んでいますか?)必要な列を減らす方法がありますか?ありがとう!レイジーローディングそれらを

  • そうすることによって

  • 答えて

    1
    1. はい、していますが、各アレイは5つの選択したプロパティが含まれてList<Object[]>を取得します。その場合のエンティティを返すことは意味をなさないでしょう。ほとんどすべてのフィールドがnullになるため、返されたオブジェクトのすべての不変条件が破られます。
    +0

    私は904の原因となり、Hibernateマッピング( "デフォルト/ヌル"の値は不必要な列でOK)を保持したいと考えているので、最良のアプローチは何ですか?私はまた、マッピングファイルのプロパティで遅延ロードプロパティを設定できることを読んだ:https://docs.jboss.org/hibernate/orm/3.5/reference/en-US/html/performance.html#performance-fetch - 20.1.8の初期化 - 別のルートですか?私は100 +列のテーブルを照会していると、それはすべて必要はありません.. – shaselai

    +0

    また、投影からも言及リンクから...ありがとう...しかし、私はHQLの権利をもたらす場合は、javaで行われていない? – shaselai

    +0

    最良の方法は、内部にヌル値を持つエンティティを戻すという考えをあきらめることです。 –

    関連する問題