Note that there are some explanatory texts on larger screens.

plurals
  1. POSpring JdbcTemplate query parameters type error: Invalid column type
    primarykey
    data
    text
    <p>I use Spring Jdbc Template that way:</p> <pre><code>public List&lt;User&gt; getUsersForGrid(int rows, int page, String sidx, String sord) { int fromRecord = 0; int toRecord = 0; toRecord = page * rows; fromRecord = (page - 1) * rows; StringBuilder sqlB = new StringBuilder(); sqlB.append("SELECT user_id, username "); sqlB.append("FROM users "); sqlB.append("WHERE :fromRecord &lt;= rownum AND rownum &lt;= :toRecord "); sqlB.append("ORDER BY %s %s "); String sql = String.format(sqlB.toString(), sidx, sord); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("fromRecord", fromRecord); params.addValue("toRecord", toRecord); List&lt;Map&lt;String, Object&gt;&gt; rsRows = this.jdbcTemplate.queryForList(sql .toString(),params); List&lt;User&gt; users = new ArrayList&lt;User&gt;(); for (Map&lt;String, Object&gt; row : rsRows) { BigDecimal id = (BigDecimal) row.get("user_id"); String username = (String) row.get("username"); User user = new User(id.intValue(), username); users.add(user); } return users; } </code></pre> <p>and get <code>java.sql.SQLException: Invalid column type</code></p> <p>sidx is column nate("user_id" for example) sord is asc/desc</p> <p>When pass no params(execute only </p> <pre><code> sql.append("SELECT user_id, username "); sql.append("FROM users "); </code></pre> <p>) everything is OK.</p> <p>Update: Works with:</p> <pre><code>sqlB.append("WHERE ? &lt;= rownum AND rownum &lt;= ? "); </code></pre> <p>and </p> <pre><code>this.jdbcTemplate.queryForList(sql.toString(),new Object[]{fromRecord, toRecord}); </code></pre> <p>Seems like problem with Spring MapSqlParameterSource and named parameters. I use Spring 3.1.3</p> <p>DB is Oracle 11.2</p> <pre><code>describe users; Name Null Type ------------------------------ -------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- USER_ID NOT NULL NUMBER USERNAME NOT NULL VARCHAR2(40) PASSWORD NOT NULL VARCHAR2(20) ENABLED NOT NULL NUMBER </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload