String sql = "SELECT ts.LIFNR, se.EMAIL,se.SID from T_SUPPLIER ts LEFT OUTER JOIN T_SUPPLIEREMAIL se ON ts.LIFNR = se.LIFNR where 1 = 1";Session session = HibernateUtil.currentSession();//自己封装的Hibernate实体
SQLQuery query2 = session.createSQLQuery(sql);
query2.setFirstResult(offset);
query2.setMaxResults(length);
List<Object[]> list = query2.list();
for(Object[] o: list){
System.out.print(o[0] + "-");
System.out.print(o[1] + "-");
}打印出来的结果是:南[email protected]
而数据库实际LIFNR字段的值为:南京而且我随便查哪个单表也只会显示第一个字符,但是如果查T_SUPPLIEREMAIL 表数据就可以全部显示。这是什么问题?
而且原生SQL查询应该也和hibernate的配置无关吧?即使有关我用HQL语句进行单表查询也没有问题。封装的实体和SQL语句都没有问题,可以正常运行,数据库为sqlserver2000
SQLQuery query2 = session.createSQLQuery(sql);
query2.setFirstResult(offset);
query2.setMaxResults(length);
List<Object[]> list = query2.list();
for(Object[] o: list){
System.out.print(o[0] + "-");
System.out.print(o[1] + "-");
}打印出来的结果是:南[email protected]
而数据库实际LIFNR字段的值为:南京而且我随便查哪个单表也只会显示第一个字符,但是如果查T_SUPPLIEREMAIL 表数据就可以全部显示。这是什么问题?
而且原生SQL查询应该也和hibernate的配置无关吧?即使有关我用HQL语句进行单表查询也没有问题。封装的实体和SQL语句都没有问题,可以正常运行,数据库为sqlserver2000
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货