2015-08-09 15 views
0

我使用jodd框架,它提供了dboom許多實用程序。是否有可能在jodd中將結果集映射爲apache dbutils?

我的問題是,我可以通過apache dbutils與jodd dboom模塊做一個簡單的pojo映射到像ResultSetHandler這樣的結果集嗎?

SQL查詢:

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.... 
} 

可我映射的ResultSet這個POJO名單..?

DAO代碼::

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()); 
     } 
    } 

從此我得到的名單正確的計數,但它是空對象的名單....

+0

是的,你可以有簡單的bean映射。請注意,在[SO]上你應該提出更具體的問題。 – igr

+0

是的,我知道,但我想要pojo映射沒有任何dbtable或dbcolumn註釋喜歡請參閱我更新的問題。 –

+0

您不必使用註釋,只需簡單的bean,並遵循命名約定(即使可以設置:)。但是,如果你想使用別名,你只需要手動註冊bean,這就是全部。如果你只想映射,你不必註冊任何東西:) – igr

回答

0

請參閱Jodd DbOom Naming Strategies。在DbOoom中,可以註冊或配置自己的命名策略,定義列名稱如何轉換爲bean名稱。在你的情況下,這是發生了什麼:因爲你有列表中的null對象,這意味着映射失敗。

默認映射規則/約定如下:列名稱FOO_BAR被翻譯爲fooBar。您正在使用不同的命名策略,其中列名稱等於bean名稱。

所以,你可以做到以下幾點:

  • 變化,以配合您的使用情況下的策略,或
  • 重命名數據庫列常見的「大寫,用下劃線分隔,名」 :)
相關問題