To clarify more,
I have a bunch of beans of
different classes. There is a table for each class of bean, with
columns that correspond directly to bean properties. This makes it easy
to do things like <select id="getAuthors"
resultClass="author">SELECT * from authors</select>
What I'd like to do is something
like
<select id="getSomething"
resultClass="$resultClass$" remapResults="true">SELECT * FROM
$table$</select>
Thanks for the reply.
I'm well aware of queryForMap,
but the problem isn't grouping the objects.
Basically, I have a bean "graph"
(or tree, or whatever) that has been constructed before there is enough
information to run the final query. Also, I don't know the bean class
before hand (and don't want to add it explicitly to the resultMap or
resultClass argument)
As an alternative solution to my
problem, if there was a way to do a queryForList, but specify the
result class at runtime, that would be extremely helpful.
Daniel, there is queryForMap functionality in iBatis. It looks like
this: SqlMapExecutor.queryForMap(statementName, parameterObject, key).
The key will be a column in your result map which could be your bean.id
property after the result map populates the bean. I am not sure what
you mean by populating existing beans, but I hope this helps.
Diran
Daniel Pitts wrote:
I have a
Map<Integer, MyBean> byId;
Which was built by "byId.put(myBean.getId(), myBean);"
MyBean is the base class, there are many types of "MyBean" objects.
Is there a away to tell iBATIS to use the bean in "byId" map as the
result object? Or do I have to get the result, and copy the values over
myself?
I know it can be done with queryForObject(String, Object, Object); but I
need it for something like queryForList or queryForMap
Thanks,
Daniel.