hibernate中执行标准sql需要注意的问题
关键字: sql
执行一般的查询还没有问题,但是对于某些复杂的sql语句,比如如下这句:
sql="select fact.inetip as item1,count(distinct(fact.mac)) as item2 from report_fact_t fact where " +
"not exists (select * from netbar_outsideips_t ips where fact.inetip=ips.ip) " +
"and terminallog_time=str_to_date('2007-09-04','%Y-%m-%d') group by inetip";
就会报出如下的异常:
很是奇怪的报错!查看了它的文档,也没有看到有啥特别的说明。最后通过试验发现对于复杂的对象类型,必须用addScalar说明数据的类型,才能正常工作。修改后的代码如下:
外部调用的时候,要传递数据的类型:
修改以后就不会有问题啦
本文讨论了在使用Hibernate执行包含多个条件和聚合函数的复杂SQL语句时遇到的错误,特别是当涉及到对象类型时,需要通过指定数据类型来避免Column not found异常,并提供了正确的参数传递方式。
916

被折叠的 条评论
为什么被折叠?




评论