7bc723f1c7
* [ISSUE #15710] Declare the LIKE escape clause for dialects without a default escape character Fuzzy search parameters escape the _ wildcard with a backslash, which only works on a database treating the backslash as the default LIKE escape character. Derby and Oracle have no such default, so the predicate matches the backslash literally and silently returns no row. Report the clause through the new Mapper#getLikeEscapeClause() dialect hook, override it for Derby and Oracle, and append it to every LIKE bound to such a parameter, in both the shared mapper defaults and the Oracle overrides. MySQL and PostgreSQL keep an empty clause, so their SQL is unchanged. Assisted-by: Claude Code Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com> * [ISSUE #15710] Escape the LIKE escape character in fuzzy search arguments Declaring ESCAPE '\' on the LIKE predicates also constrains the bound parameter: generateLikeArgument escaped the _ wildcard but left a literal backslash in the search value untouched, so a value such as C:\path formed the invalid escape sequence \p. Oracle rejects it with ORA-01424 and Derby with SQLSTATE 22025, and a value such as a\_b silently kept _ as a wildcard. Escape the escape character itself before escaping _, keeping the Config and AI implementations consistent, and document the required order in the datasource dialect spec. Add a Derby test that executes the SQL generated by the mapper with the bound parameter, since asserting the SQL text alone cannot detect an invalid escape sequence in the argument. Assisted-by: Claude Code Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com> --------- Signed-off-by: wushiyuanmaimob <wushiyuanwork@outlook.com>