У меня есть SQL-запрос, как показано ниже
select transf, count(fname) from peak_info where fname in (select peakfile from pe_result where conid = 'GO:0006007' and fdr > 0.05) group by transf;
, которые я хочу реализовать в Grails, создает критерии.В настоящее время я запускаю SQL-запрос в скобках, а затем запускаю внешний запрос, как показано ниже:
def test2 = PeResult.createCriteria()
def ptest=test2.list {
eq("conid",conid.toString())
gt("fdr","0.05")
}
def peaknames = ptest.peakfile
def peakinfoFilter = PeakInfo.createCriteria()
def pifilter = peakinfoFilter.list {
'in'("fname", peaknames)
projections
{
groupProperty "transF"
count "fname"
}
}
Мне было интересно, есть ли другие способы сделать это в одном запросе вместо выполнения двух запросов?