[list]
[*]hibernate+spring在没有开启延时加载的情况下,当一个DAO类执行完毕,其session立即关闭。session与事务不在同一个级别上。以前错误的把session和事务混淆了。
[*]今天从报表那里发现一个怪异的问题,一个查询结果中有一number型的数值,插入一个temp表,以varchar2储存这个number型的时候,再次查询temp表,这个结果集中的varchar2数值类型居然和原来的结果不一样~~~~~看来oracle还是有问题的,数据类型还是得对应,不能偷懒以varchar2搞定一切。
[*] 今天在JS用 extends做function的名字时页面JS报错,查了半天~~~~~JS中也最好不使用关键字,尤其是加载了第三方JS插件的情况下
[*] 在hql语句中,distinct在new 对象的时候要这样写
select distinct new object(property) from pojo.
[*][color=red]org.hibernate.HibernateException: ordinal parameter mismatch [/color]
今天一个查询语句里有个字段叫callingKey,就出现如下错误
官方告示
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1423
在org.hibernate.engine.query.ParameterParser源码类中有下列一段代码
public static void parse(String sqlString, Recognizer recognizer) throws QueryException{
boolean hasMainOutputParameter = sqlString.indexOf( "call" ) > 0 &&
sqlString.indexOf( "?" ) < sqlString.indexOf( "call" ) &&
sqlString.indexOf( "=" ) < sqlString.indexOf( "call" );
......
}
我们都知道hibernate3可以调用存储过程或函数,但是有一定的限制(具体可以查看hibernate官方手册)。
据我分析这段代码应该是用来分析字符串是否是调用存储过程或函数的语句。
解决方法:
1.不要在表或列中,出现"call"字样
2.用Criteria来代替hql语句
[*][color=red]org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update[/color]
当项目中出现这个错误,可能是字段使用了oracle的关键字,例如我报出这个错的时候,有一列的列名是:DESC
[*][color=red]在oracle9i以及以前的版本中,不支持order by 子查询[/color]
[/list]
[*]hibernate+spring在没有开启延时加载的情况下,当一个DAO类执行完毕,其session立即关闭。session与事务不在同一个级别上。以前错误的把session和事务混淆了。
[*]今天从报表那里发现一个怪异的问题,一个查询结果中有一number型的数值,插入一个temp表,以varchar2储存这个number型的时候,再次查询temp表,这个结果集中的varchar2数值类型居然和原来的结果不一样~~~~~看来oracle还是有问题的,数据类型还是得对应,不能偷懒以varchar2搞定一切。
[*] 今天在JS用 extends做function的名字时页面JS报错,查了半天~~~~~JS中也最好不使用关键字,尤其是加载了第三方JS插件的情况下
[*] 在hql语句中,distinct在new 对象的时候要这样写
select distinct new object(property) from pojo.
[*][color=red]org.hibernate.HibernateException: ordinal parameter mismatch [/color]
今天一个查询语句里有个字段叫callingKey,就出现如下错误
官方告示
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1423
在org.hibernate.engine.query.ParameterParser源码类中有下列一段代码
public static void parse(String sqlString, Recognizer recognizer) throws QueryException{
boolean hasMainOutputParameter = sqlString.indexOf( "call" ) > 0 &&
sqlString.indexOf( "?" ) < sqlString.indexOf( "call" ) &&
sqlString.indexOf( "=" ) < sqlString.indexOf( "call" );
......
}
我们都知道hibernate3可以调用存储过程或函数,但是有一定的限制(具体可以查看hibernate官方手册)。
据我分析这段代码应该是用来分析字符串是否是调用存储过程或函数的语句。
解决方法:
1.不要在表或列中,出现"call"字样
2.用Criteria来代替hql语句
[*][color=red]org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update[/color]
当项目中出现这个错误,可能是字段使用了oracle的关键字,例如我报出这个错的时候,有一列的列名是:DESC
[*][color=red]在oracle9i以及以前的版本中,不支持order by 子查询[/color]
[/list]