求救求救,infromix数据库用hibernate无法获得list值,超级诡异。。。
这个问题郁闷三天了
问题就是hibernate不能查询到我要的数据,但是直接在数据库执行sql时可以查到,有没有童鞋遇到过,求救。。。
数据表结构如下:
create table a
(
streamnumber serial not null ,
number1 char(16),
content char(140),
primary key (streamnumber)
);
create index idx_a_1 on a
(content) using btree in table ;
数据库版本:
IBM Informix Dynamic Server Version 10.00.FC7 IDS10
sql语句:
select a.streamnumber , a.number1 , a.content from a where a.number1='13812345678' and a.content='2010122302164447';
(该sql语句其实就是hibernate的实际sql,拿到数据库执行没问题的)
hibernate方法:其中number1="13812345678" content为2010122302164447
public A getContent(String content,String number1) {
List<A> list = getHibernateTemplate().find(
"from A as item where item.number1=? and item.content=?",
new Object[] {number1,content});
logger.info("list size="+list.size());
logger.info(list.toString());
if(list==null ||list.size() <= 0 ){
return null;
}
else{
return list.get(0);
}
}
最后,hibernate中的log日志打印如下:
list size=0
[]
[解决办法]
hibernate没用过。
运作sql时应该有个session和informix连接,问问DBA你的在运作SQL,看看对不对。