Mysql
 sql >> Baza danych >  >> RDS >> Mysql

$filter nie działa w JPA/Olingo 2.0.11 z MySQL

Nie rozwiązuje pierwotnego problemu i nie jest najskuteczniejszym sposobem..ale oto obejście tego, jak usunąć nieprawidłową instrukcję „escape” za pomocą tylko jednego ukośnika:

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

To nadpisuje metodę inspekcji i możesz modyfikować wygenerowane zapytanie sql podczas korzystania z hibernacji

w moim pliku persistence.xml muszę ustawić właściwość „hibernate.session_factory.statement_inspector”, aby połączyć moją implementację StatementInspector z fabryką sesji hibernacji

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

nie wiem, jak dokładnie to działało z spring-boot, ale może istnieje podobna właściwość dla twojego application.properties?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dołączyć do trzech stołów według wymownego modelu laravel

  2. Jak stworzyć kilka stron za pomocą dompdf

  3. INDIE, STD Code Finder Script w PHP, MYSQL, JQUERY

  4. Wybierz różne rekordy w połączeniu

  5. Jak sobie z tym poradzić Serwer MySQL działa z opcją --secure-file-priv, więc nie może wykonać tej instrukcji na komputerze Mac