Jpa jpql将1替换为?
试图找到一种方法来绕过被替换为“”的整数 按预期工作的SQL: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_
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中,而是用来突出显示某些内容)