Grails:使用来自交叉连接的数据填充域:hql,criteria,SQL query?

时间:2011-02-28 14:15:12

标签: grails hql hibernate-criteria

我对这个问题有点困惑。 假设我有一个域类:

class Activity {
    String activityID
    String activityDescription
    String activityType
}

和另一个

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

我想使用域类Activity与其自身的交叉连接的结果填充ActivityMap域类,即具有等效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;

我不确定哪种方法最有效:使用Criteria,HQL或嵌入式SQL查询,因为产生的数据集可能非常大(300-50 +活动发生次数,预计250k结果行)?

任何建议/提示,例如?

提前致谢, 帕特里克

1 个答案:

答案 0 :(得分:0)

即使有10k +结果行,Hibernate也会遇到查询返回如此大的结果的问题。所以250k行会占用你所有的内存和cpu。

我建议你尝试使用原生SQL查询,而且你不期望实际的结果,只有INSERT ... SELECT