Lost het oorspronkelijke probleem niet op en is niet de meest efficiënte manier..maar hier is een oplossing voor het verwijderen van de onjuiste 'escape'-instructie met slechts één schuine streep:
public class SqlStatementInspector implements StatementInspector {
private static final long serialVersionUID = 1L;
private static final Logger LOG = Logger.getLogger(SqlStatementInspector.class);
@Override
public String inspect(String sql) {
if (!sql.contains("escape \'\\'")) {
return sql;
}
// OData JPA query correction -> current version (2.0.11) contains
// the invalid 'escape "\"' statement that delivers no results
LOG.info("Replacing invalid statement: escape \"\\\"");
return sql.replace("escape \'\\'", "");
}
}
Dit overschrijft de inspect-methode en u kunt de gegenereerde sql-query wijzigen wanneer u de slaapstand gebruikt
in mijn persistence.xml-bestand moet ik dan de eigenschap "hibernate.session_factory.statement_inspector" instellen om mijn StatementInspector-implementatie te verbinden met mijn slaapstandsessiefabriek
<property
name="hibernate.session_factory.statement_inspector"
value="SqlStatementInspector" />
ik weet niet hoe dit precies zou werken met spring-boot, maar misschien is er een vergelijkbare eigenschap voor uw application.properties?