我尝试使用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)