You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Julien Aymé (JIRA)" <ji...@apache.org> on 2009/10/22 11:25:05 UTC

[jira] Commented: (DBUTILS-57) BeanProcessor not able to map an alias column from a HSQLDB query to the any bean properties

    [ https://issues.apache.org/jira/browse/DBUTILS-57?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768614#action_12768614 ] 

Julien Aymé commented on DBUTILS-57:
------------------------------------

IMHO, the column label should be used in the first place, and reverted to the column name if the label is null or empty.
This would allow to automatically map query like this:

{code}
SELECT 
    i.id,
    i.price,
    t1.label AS name,
    t2.label AS description,
    t3.label AS tooltip
FROM items i
    JOIN texts t1 ON i.lname_id = t1.id
    JOIN texts t2 ON i.ldescr_id = t2.id
    JOIN texts t3 ON i.ltool_id = t3.id
WHERE i.id = ?
    AND t1.lang_id = ?
    AND t2.lang_id = ?
    AND t3.lang_id =?
{code}

What do you think?

> BeanProcessor not able to map an alias column from a HSQLDB query to the any bean properties
> --------------------------------------------------------------------------------------------
>
>                 Key: DBUTILS-57
>                 URL: https://issues.apache.org/jira/browse/DBUTILS-57
>             Project: Commons DbUtils
>          Issue Type: Bug
>         Environment: hsqldb-1.9.0-rc4 memory mode
> DBUtils 1.2
>            Reporter: Wynand
>
> Using a query with an alias, hsqldb engine doesn't populate the column name metadata only the column label metadata.
> In such a case the column isn't mapped.
> To resolve this, the column label should be used in case the column name is not available.
> Here is a snippet from org.apache.commons.dbutils.BeanProcessor.mapColumnsToProperties line 393 : 
> ...
>        for (int col = 1; col <= cols; col++) {            
>             String columnName = rsmd.getColumnName(col);
>            // columnName is empty, revert to column label
>             if (columnName.length() == 0) {
>                 columnName = rsmd.getColumnLabel(col);
>             }            
>             ...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.