J'essaie de créer une chaîne de requête jooq de la façon suivante
DSL.using(SQLDialect.MYSQL)
.select(
ImmutableList.of(DSL.field("Name"))
.from(DSL.table("Account"))
.where(DSL.field("Name").eq("Yaswanth's Company"))).toString()
La chaîne de requête résultante a le guillemet simple échappé avec un autre guillemet simple qui est la manière par défaut de mySQL d'échapper les guillemets simples.
"select Name from Account where Name = 'Yaswanth''s Company'"
Mais j'aurais besoin que le guillemet simple soit échappé par une barre oblique inverse, car je forme la chaîne de requête pour Salesforce. (ce qui s'appelle SOQL).
J'ai besoin de la chaîne de requête de cette façon
"select Name from Account where Name = 'Yaswanth\\'s Company'"
J'ai regardé le code de la bibliothèque de jooq et ceci est codé en dur dans la classe DefaultBinding.
private final String escape(Object val, Context<?> context) {
String result = val.toString();
if (needsBackslashEscaping(context.configuration()))
result = result.replace("\\", "\\\\");
return result.replace("'", "''");
}
Existe-t-il un moyen pour moi de remplacer ce comportement par défaut par une configuration ou des paramètres qui peuvent être transmis par DSL.using(*, *) ?