是否有可能将bean映射到结果集作为apache butils



我正在使用jodd框架,它为dboom提供了许多实用程序。

我的问题是,我可以做简单的pojo映射到一个结果集,如ResultSetHandler由apache dbutils与jodd dboom模块?

sql query:

select child.id as id, child.name as name, parent.name as parentCategoryName
from tblmcategory child left outer join tblmcategory parent
on parent.categoryId = child.parentCategoryId;` 

和pojo类似于

public class CategoryData implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Long id;
    private String name;
    private String parentCategoryName;
    //setter and getters method....
}

我可以映射结果集到这个pojo列表…?

dao code::

public <T> List<T> executeQuery1(String query, Class<T> clazz) throws DatabaseException {
        try {
            return jodd.db.oom.DbOomQuery.query(query).autoClose().list(clazz);
        } catch (Exception e) {
            e.printStackTrace();
            throw new DatabaseException(e.getMessage());
        }
    }

从这个我得到正确的计数列表,但它是空对象的列表....

请参阅Jodd DbOom命名策略。在DbOoom中,可以注册或配置自己的命名策略,定义如何将列名转换为bean名。在您的例子中发生的情况是:由于列表中有null对象,这意味着映射失败。

默认映射规则/约定如下:将列名称FOO_BAR转换为fooBar。您正在使用不同的命名策略,其中列名等于bean名称。

所以你可以这样做:

  • 更改策略以匹配您的用例,或者
  • 将数据库列重命名为通用的'大写带下划线分隔的名称':)

相关内容

  • 没有找到相关文章

最新更新