hibernate中hql语句获取名次rank()问题

来源:互联网 发布:淘宝网包包 女包0-20元 编辑:程序博客网 时间:2024/04/29 04:21

public class RankFunction implements SQLFunction {public RankFunction() {}@Overridepublic Type getReturnType(Type arg0, Mapping arg1) throws QueryException {return Hibernate.INTEGER;}@Overridepublic boolean hasArguments() {return true;}@Overridepublic boolean hasParenthesesIfNoArguments() {return true;}@Overridepublic String render(List args, SessionFactoryImplementor factory) throws QueryException {if (args.size() != 1) {throw new IllegalArgumentException("RankFunction requires 1 argument!");}return "rank() over(order by " + args.get(0) + ") ";}}
<pre name="code" class="java">// 自定义言类,替换beans.xml默认方言
public class SQLServer2005Dialect extends SQLServerDialect {public SQLServer2005Dialect() {registerFunction("rank", new RankFunction());}
}


我用的sqlserver2005 

自定义hibernate方言即可,在hql中调用

select rank(column) from table


0 0
原创粉丝点击