试图找到绕过一个整数被"?"。
替换的方法按预期工作的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中添加常量值?