在 eclipse link jpa 中移动到 java 8 次后,derby 数据库出错

Error in derby database after move to java 8 time in eclipse link jpa

我有用 JPQL 和 eclipse link 和 derby 数据库编写的查询

"select  sum(LedgerDetailTable.debitValue) - sum(LedgerDetailTable.creditValue) from      LedgerDetailTable as LedgerDetailTable  left join LedgerMasterTable as LedgerMasterTable on LedgerDetailTable.ledgerMasterId = LedgerMasterTable.id  left join ReferenceTable as ReferenceTable on LedgerMasterTable.referenceId = ReferenceTable.id where      LedgerDetailTable.assistantAccountId = 1 AND ReferenceTable.workDateTime <" + "'" + workDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "'"

我出错了

Caused by: java.sql.SQLSyntaxErrorException: Syntax error: Encountered "T19" at line 1, column 275.

从 eclipse link 日志中生成的 sql

SELECT (SUM(t0.debitValue) - SUM(t0.creditValue)) FROM LedgerDetailTable t0 LEFT OUTER JOIN LedgerMasterTable t1 ON (t0.ledgerMasterId = t1.id) LEFT OUTER JOIN ReferenceTable t2 ON (t1.referenceId = t2.id) WHERE ((t0.assistantAccountId = 1) AND (t2.workDateTime < 2020-02-27T19:41:52))

为什么 java 将 '2020-02-27 19:41:52' 转换为 2020-02-27T19:41:52 而没有单引号

将 eclipselink 2.7 升级到 2.7.6 解决的问题