Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa jpql将1替换为?_Jpa_Derby_Jpql - Fatal编程技术网

Jpa jpql将1替换为?

Jpa jpql将1替换为?,jpa,derby,jpql,Jpa,Derby,Jpql,试图找到一种方法来绕过被替换为“”的整数 按预期工作的SQL: select max(m.ticket_num) **+ 1** from mytable m where current date = DATE(m.create_ts) @NamedQuery( name = "Orders.findNewTicketNum", query = "SELECT max(M.ticketNum) **+ 1** FROM Mytable m WHERE CURRENT_

试图找到一种方法来绕过被替换为“”的整数

按预期工作的SQL:

select max(m.ticket_num) **+ 1** from mytable m where current date = DATE(m.create_ts)
@NamedQuery(
      name = "Orders.findNewTicketNum", 
      query = "SELECT max(M.ticketNum) **+ 1** FROM Mytable m WHERE CURRENT_DATE = FUNCTION('DATE',m.createTs)")
JPQL:

select max(m.ticket_num) **+ 1** from mytable m where current date = DATE(m.create_ts)
@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”,但我认为这只适用于“like”条款\1.结果是在最终sql中删除了“1”

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


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

JPQL不会用任何东西替换任何东西。您的JPA实现可能很好,但我们不知道它是哪一个。我使用的那个并不能做到这一点(注意:我假设星号实际上不在JPQL/SQL中,而是用来突出显示某些内容)