Hibernate通用列表和数据输出

时间:2014-10-13 16:18:38

标签: hibernate generics generic-list

我搜索过这个,但找不到答案。我想我错过了一些明显的东西,或者我并不理解Hibernate。我有一个项目,可以访问超过100个表,所以我试图实现一个通用的DAO,它可以读取任何这些表并将结果输出到excel表。下面是我正在使用的代码的信息。

SQLQuery query = session.createSQLQuery("SELECT * FROM " + tables + " WHERE " + conditions );
List<Object[]> ob = query.list();
for(Object[] obj : ob ){
    for(int x=0; x<obj.length; x++)
        System.out.println("Col: " + obj[x].toString());}

然而,当我打印出对象时,我得到的只是表格中的第一个字符。

Col1  Col2  Col3
 1      8     8

当实际值为:

Col1  Col2  Col3
 135   800   867

我做错了什么,或者我完全误解了Hibernate的工作原理。

先谢谢。

JF

编辑我已经添加了用于输出对象的代码以及结果和实际的表数据。

2 个答案:

答案 0 :(得分:0)

尝试使用以下方式打印:

for(Object[] obj : ob ){   
    System.out.println("Row: " + Arrays.toString(obj));

答案 1 :(得分:0)

好的,所以我发现了这个问题。

https://hibernate.atlassian.net/browse/HHH-2304

总结一下,在这里:

Hibernate native query - char(3) column

显示了一个解决方案。

对于那些想要摘要的人:

返回类型char(&gt; 1)时Hibernate存在问题,因此您必须添加标量或转换返回值才能获得完整值。