gpt4 book ai didi

sql - SQL对Hql查询进行非常大的关联

转载 作者:行者123 更新时间:2023-12-02 16:01:21 27 4
gpt4 key购买 nike

在我的应用中,存在以下关系:页面hasMany段落,我需要创建一个查询,该查询返回所有段落数少于限制的页面。问题在于,这些页面是在另一个应用程序中以大约每秒2个的速度创建的,并且段落表包含了更多的 200万行。所有标准grails方法(例如动态查找器和条件查询)都因其创建的不是最佳sql而挂起。在数据库控制台中,以下查询完成了该工作:

select * from (
select a.id, count(b.page_id) count from page a
left join paragraph b ON a.id = b.page_id
group by 1) sub
WHERE sub.count <= 10 LIMIT 1000



而且我不会将此查询转换为HQL。我知道有可用的groovy sql,但是它的rows方法返回一个GroovyResult列表,而不是域类列表。有没有更好的方法来解决这个问题?

最佳答案

如果查询太复杂,我倾向于这样做:

def results = new Sql(dataSource).rows(SQL)*.id*.asType(Integer).colect(DomainClass.&get)

我知道它看起来并不太好,您可能不会因此而获得荣誉,但可以完成工作。
但是,如果您想使用更具表现力的内容,可以尝试JOOQ( http://www.jooq.org/)

关于sql - SQL对Hql查询进行非常大的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30534179/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com