Tidak menyelesaikan masalah asli dan bukan cara yang paling efisien..tetapi di sini ada solusi untuk cara menghapus pernyataan 'escape' yang salah hanya dengan satu garis miring:
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 \'\\'", "");
}
}
Ini menimpa metode pemeriksaan dan Anda dapat memodifikasi kueri sql yang dihasilkan saat menggunakan hibernasi
dalam file ketekunan.xml saya, saya kemudian perlu mengatur properti "hibernate.session_factory.statement_inspector" untuk menghubungkan implementasi StatementInspector saya dengan pabrik sesi hibernasi saya
<property
name="hibernate.session_factory.statement_inspector"
value="SqlStatementInspector" />
saya tidak tahu bagaimana tepatnya ini akan bekerja dengan spring-boot tetapi mungkin ada properti serupa untuk application.properties Anda?