jpql用?

时间:2015-04-28 22:58:28

标签: jpa derby jpql

试图找到绕过一个整数被"?"。

替换的方法

按预期工作的SQL:

select max(m.ticket_num) **+ 1** from mytable m where current date = DATE(m.create_ts)

JPQL:

@NamedQuery(
      name = "Orders.findNewTicketNum", 
      query = "SELECT max(M.ticketNum) **+ 1** FROM Mytable m WHERE CURRENT_DATE = FUNCTION('DATE',m.createTs)")

在执行之前打印出查询显示:

EJBQueryImpl(
        ReportQuery(
         name="Mytable.findNewTicketNum" 
         referenceClass=Mytable 
         sql="SELECT (MAX(TICKET_NUM) **+ ?**) FROM MYTABLE WHERE (CURRENT_DATE = DATE(CREATE_TS))"))

" + 1"改为" +?"并且应用程序在查询的初始运行时挂起。 我可以通过在代码中添加1来解决这个问题,但我想知道我是否遗漏了一些东西。我看起来像" 1"正在解析为索引占位符,我认为语法是:"?1"。

我看着逃避" 1"但我认为这只适用于"喜欢"条款。 ... + \ 1 ...结果是" 1"在最后的sql中删除了。

我也尝试使用类型为Integer的命名参数,但也被"?"替换。

有没有办法在JPQL中添加常量值?

0 个答案:

没有答案