NamedParameterJdbcTemplate Oracle SQL,如何在命名查询中转义单引号?

NamedParameterJdbcTemplate Oracle SQL, how to escape single quote in named query?

我有以下代码,我似乎无法弄清楚如何转义命名参数周围的单引号。在生成的查询中,我需要在它的两边加上单引号:

        public List<Vehicle> findByApplicationId(String applicationId) {
            // example application id is a string like 12345
            MapSqlParameterSource sqlParameterSource = new MapSqlParameterSource();
            sqlParameterSource.addValue("applicationId", applicationId);

            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.append("SELECT make, model");
            stringBuilder.append(" FROM vehicle");
            stringBuilder.append(" WHERE model IN (SELECT id FROM auto WHERE model_app IN (");
            stringBuilder.append(":applicationId");
            stringBuilder.append("))");
           // in the resulting query the applicationId must appear 
           // as '12345', meaning with single quotes around it

            return jdbcTemplate.query(stringBuilder.toString(), sqlParameterSource,
                    // lambda used as row mapper
                    (resultSet, rowNumber) -> {...
    ...

我试过像 stringBuilder.append("'':applicationId''"); 一样在 name 参数周围加上双单引号,但没有用。根据我在 SO 上看到的其他答案,我尝试了单引号和许多其他此类单引号和双引号的组合。好像看不懂。

原来我的问题根本不是 Alex Poole 所建议的单引号(谢谢 Alex)。我的 Java 字符串需要转换为 Oracle 类型 CHAR(17)。在我这样做之后,不需要单引号或双引号,并且我的命名参数正确解析并且查询有效。