hibernate sql return scalar 返回值的顺序问题 native sql
hibernate 里面用sql查询时 在没有return scalar的情况下返回值的顺序是按照sql中的select,
有return scalar的情况下返回值的顺序是按照scalar的排列顺序
?
列子:
??? <sql-query name="xxx.vvv">
??????????? <return-scalar column="click" type="long"/>
??????????? <return-scalar column="ipClick" type="long"/>
??????????? <return-scalar column="view" type="long"/>
??????????? <return-scalar column="ipView" type="long"/>
??????????? select xxx,sum(view) as view,sum(IP_view) as ipView,sum(click) as click,sum(ip_click) as ipClick
??????????? from vvv
??? </sql-query>
?
最后实际上返回值 Object[]? 中的顺序是按照scalar的排列顺序来的
?
?
?
?
上面使用的
17.3.?命名SQL查询
可以在映射文档中定义查询的名字,然后就可以象调用一个命名的HQL查询一样直接调用命名SQL查询.在这种情况下,我们
注意在这个例子中,我们使用了
?
注意存储过程当前仅仅返回标量和实体.现在不支持17.4.?定制SQL用来create,update和delete
Hibernate3能够使用定制的SQL语句来执行create,update和delete操作。在Hibernate中,持久化的类和集合已经包含了一套配置期产生的语句(insertsql, deletesql, updatesql等等),这些映射标记
这些SQL直接在你的数据库里执行,所以你可以自由的使用你喜欢的任意语法。但如果你使用数据库特定的语法,这当然会降低你映射的可移植性。
如果设定
参数的位置顺序是非常重要的,他们必须和Hibernate所期待的顺序相同。
你能够通过设定日志调试级别为17.5.?定制装载SQL
你可能需要声明你自己的SQL(或HQL)来装载实体
这只是一个前面讨论过的命名查询声明,你可以在类映射里引用这个命名查询。
这也可以用于存储过程
TODO: 未完成的例子