JPA在条件查询中使用存储过程

时间:2017-04-13 16:33:54

标签: postgresql jpa eclipselink criteria-api

我尝试使用select和where语句中的函数定义条件查询。

SQL查询是:

select s.*, contr_topay(s.id) as rest
from spedizionestd s
where contr_topay(s.id) >0
... other conditions
... optional order by

contr_topay 是数据库中的过程(Postgresql)。我已经定义了一个NamedStoredProcedure:

@NamedStoredProcedureQuery(
        name = "MovimentoContrassegno.contr_topay",
        procedureName = "contr_topay",
        parameters = {
            @StoredProcedureParameter(mode = ParameterMode.IN, queryParameter = "idsped", type = Long.class, optional = false),
            @StoredProcedureParameter(mode = ParameterMode.OUT, queryParameter="importo", type=Double.class, optional = false),
        }
)

并称之为成功:

StoredProcedureQuery query = this.em.createNamedStoredProcedureQuery("MovimentoContrassegno.contr_dapagare");
    query.setParameter("idsped", myid);
    query.execute();
    return (Double) query.getOutputParameterValue(2);

现在,我如何将过程放在条件查询中的select子句和where条件中?

注意:我需要标准查询,因为我使用附加条件构建动态查询,然后按"顺序排列"用户在运行时选择

(我使用的是eclipselink 2.6.0)

0 个答案:

没有答案