0

私はその質問に少し行き詰まっています。ドメインクラスがあるとしましょう:

class Activity {
    String activityID
    String activityDescription
    String activityType
}

そしてこのもう一つ

class ActivityMap {
    String activityID1
    String activityDescription1
    String activityType1
    String activityID2
    String activityDescription2
    String activityType2
}

ActivityMap ドメイン クラスに、ドメイン クラス Activity をそれ自体とクロス結合した結果、つまり同等の SQL クエリの結果を入力したい

SELECT a.activityID, a.activityDescription, a.activityType, a1.activityID, a1.activityDescription, a1.activityType
FROM Activity AS a, Activity AS a1
ORDER BY a.activityID, a1.activityID;

結果のデータセットが非常に大きくなる可能性があるため、基準、HQL、または埋め込み SQL クエリを使用して、それを達成する最も効率的な方法はどれかわかりません (300-50+ アクティビティの発生、250k の結果行が予想されます)?

提案/ヒント、例はありますか?

前もってありがとう、パトリック

4

1 に答える 1

0

Hibernate には、10k 以上の結果行がある場合でも、クエリがこのような大きな結果を返すという問題があります。したがって、250k 行はすべてのメモリと CPU を消費します。

ネイティブ SQL クエリを試すことをお勧めします。さらに、実際の結果は期待できません。INSERT ... SELECT

于 2011-02-28T15:05:04.547 に答える