sql >> Database teknologi >  >> RDS >> Mysql

$filter virker ikke i JPA/Olingo 2.0.11 med MySQL

Løser ikke det oprindelige problem og er ikke den mest effektive måde..men her er en løsning til, hvordan man fjerner den forkerte 'escape'-sætning med kun én skråstreg:

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 \'\\'", "");
    }
}

Dette overskriver inspektionsmetoden, og du kan ændre den genererede sql-forespørgsel, når du bruger dvale

i min persistence.xml-fil skal jeg indstille egenskaben "hibernate.session_factory.statement_inspector" for at forbinde min StatementInspector-implementering med min hibernate-sessionsfabrik

<property
                name="hibernate.session_factory.statement_inspector"
                value="SqlStatementInspector" />

Jeg ved ikke præcis, hvordan dette ville fungere med spring-boot, men måske er der en lignende egenskab for din application.properties?




  1. Kan du i en Rails Migration (MySQL) angive, hvilken position en ny kolonne skal have?

  2. Hvordan synkroniseres SQLite-database på Android-telefon med MySQL-database på serveren?

  3. VÆLG * HVOR IKKE FINNES

  4. tomcat 7.0.42 pooling, hibernate 4.2, mysql rock solid autoreconnect-løsning