You're probably not defining your key correctly in your executeQueryForMap method - thus you're gettting 2 rows with the null key and you see the last.

Diran

Guido García Bernardo wrote:

Hello, I'm in trouble with this method.

My statement is as simple as:
   <statement id="foo_query" resultClass="java.util.HashMap">
   select '1' as key, 'France' as country, 'yes' as eu from dual
   union
   select '2' key, 'Spain' as country, 'yes' as eu from dual
   </statement>

When I do:
   Map map = getSqlMapExecutor().queryForMap("foo_query", null, "key");

The logs are fine, returning two records:
DEBUG 18:36:25,390 [TP-Processor5 Connection] - {conn-100007} Connection
DEBUG 18:36:25,406 [TP-Processor5 PreparedStatement] - {pstm-100008} PreparedStatement: select '1' as key, 'France' as country, 'yes' as eu from dual union select '2' key, 'Spain' as country, 'yes' as eu from dual DEBUG 18:36:25,406 [TP-Processor5 PreparedStatement] - {pstm-100008} Parameters: [] DEBUG 18:36:25,406 [TP-Processor5 PreparedStatement] - {pstm-100008} Types: []
DEBUG 18:36:25,437 [TP-Processor5 ResultSet] - {rset-100009} ResultSet
DEBUG 18:36:25,453 [TP-Processor5 ResultSet] - {rset-100009} Header: [KEY, COUNTRY, EU] DEBUG 18:36:25,453 [TP-Processor5 ResultSet] - {rset-100009} Result: [1, France, yes] DEBUG 18:36:25,453 [TP-Processor5 ResultSet] - {rset-100009} Result: [2, Spain, yes]

But if I debug into the map, its key is null and there is only one record !
{null={COUNTRY=Spain, EU=yes, KEY=2}}

Where could be the problem?
Thank you very much in advance,
Guido.

Reply via email to