Hi starfish0r, Assuming you are using iBATIS 2 (I have no clue if this has been kept in iBATIS 3 too), what you are looking for is the "remapResults" attribute in the select tag. >From the documentation:
"Since the overhead to introspect/determine the resultset metadata is not trivial, iBATIS will remember what was returned the last time the query was run. This creates problems in situations similar to the examples above, hence the possibility to do metadata introspection with every query execution. So if the return columns can change set remapResults to true, else set remapResults to false to avoid the overhead of metadata introspection." HTH, alexis 2010/1/7 starfish0r <starfis...@gmail.com> > > Hey everyone, > I've been working with iBatis for a year now and so far it's been > incredible. > I am working with many different tables and created a web app to > dynamically > view data from any table. > Of course in this case i cannot work with a table-specific class as a > resultClass due to different table columns/column names. > > The solution was to use one select statement with resultClass=HashMap. > Unfortunately, iBatis internally remembers which columns a query returns. > (Found out about that by stepping through iBatis' sources at runtime) > When i switch to viewing another table, the select fails, because the > statement does not retrieve values for the 'remembered' columns. > > Query: > <select id="dynamicSelect" parameterClass="java.util.HashMap" > resultClass="java.util.HashMap"> > SELECT * FROM $table$ WHERE $prefix$_used_flag = 1 > </select> > > As u can see, i provide which table to get the data from. > I select data from the first table, which contains the column 'ptt_id'. > When i call the same query on a different table, the query fails: > > com.ibatis.common.jdbc.exception.NestedSQLException: > --- The error occurred in maps/mapFormTable.xml. > --- The error occurred while applying a result map. > --- Check the FormTable.dynamicSelect-AutoResultMap. > --- Check the result mapping for the 'ptt_id' property. > --- Cause: java.sql.SQLException: Column 'ptt_id' not found. > > > How do i fix this? The application heavily relies on that functionality. > The 'remembering' map is not accessible, so i cannot modify iBatis' > expectations regarding the result HashMap. > > I have tried capsulating the queries in their own transaction, session and > both. > Nothing works... > > Help would be highly appreciated! > -- > View this message in context: > http://old.nabble.com/Serious-Problem-with-Select-resultClass%3DHashMap-on-different-tables-tp27058010p27058010.html > Sent from the iBATIS - User - Java mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > For additional commands, e-mail: user-java-h...@ibatis.apache.org > >