diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java index c13a45a4d4..92e94c2f07 100644 --- a/jOOQ/src/main/java/org/jooq/conf/Settings.java +++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java @@ -52,6 +52,8 @@ public class Settings @XmlElement(defaultValue = "QUOTED") @XmlSchemaType(name = "string") protected RenderNameStyle renderNameStyle = RenderNameStyle.QUOTED; + @XmlElement(defaultValue = ":") + protected String renderNamedParamPrefix = ":"; @XmlElement(defaultValue = "AS_IS") @XmlSchemaType(name = "string") protected RenderKeywordCase renderKeywordCase = RenderKeywordCase.AS_IS; @@ -327,6 +329,38 @@ public class Settings this.renderNameStyle = value; } + /** + * The prefix to use for named parameters. + *
+ * Named parameter syntax defaults to :name (such as supported by Oracle, JPA, Spring), but
+ * vendor specific parameters may look differently. This flag can be used to determine the prefix to be
+ * used by named parameters, such as @ for SQL Server's @name or $
+ * for PostgreSQL's $name.
+ *
+ * "Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not
+ * providing a name to parameters, resulting in
+"Named indexed" parameters can be obtained in the same way by specifingy {@code ParamType#NAMED} and not
+providing a name to parameters, resulting in :1 or @1 or $1, etc.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getRenderNamedParamPrefix() {
+ return renderNamedParamPrefix;
+ }
+
+ /**
+ * Sets the value of the renderNamedParamPrefix property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setRenderNamedParamPrefix(String value) {
+ this.renderNamedParamPrefix = value;
+ }
+
/**
* Whether the case of {@link org.jooq.Keyword} references should be modified in any way.
*
@@ -1549,6 +1583,11 @@ public class Settings
return this;
}
+ public Settings withRenderNamedParamPrefix(String value) {
+ setRenderNamedParamPrefix(value);
+ return this;
+ }
+
public Settings withRenderKeywordCase(RenderKeywordCase value) {
setRenderKeywordCase(value);
return this;
@@ -1817,6 +1856,11 @@ public class Settings
sb.append(renderNameStyle);
sb.append("");
}
+ if ((renderNamedParamPrefix!= null)&&(!"".equals(renderNamedParamPrefix))) {
+ sb.append(":name (such as supported by Oracle, JPA, Spring), but
+vendor specific parameters may look differently. This flag can be used to determine the prefix to be
+used by named parameters, such as @ for SQL Server's @name or $
+for PostgreSQL's $name.
+:1 or @1 or $1, etc.]]>