Criteria的Order功能简洁,只支持按照某个属性(字段)的排序,如果想要实现order by min(id) 这样的应用场景就没戏儿了,起初我想用interceptor的onPrepareStatement()修改sql,但受困于spring管理事务,如用interceptor就得所用的session都使用interceptor,而不能做到灵活使用。我们知道projection和Restrictions都支持嵌入某个sql片段,我们就参照他们实现一个吧具体代码如下:public class UDOrder extends Order {
private String sql;
/**
*
*/
private static final long serialVersionUID = 6069765923185860527L;
public UDOrder(String propertyName, boolean ascending) {
super(propertyName, ascending);
this.sql = propertyName;
}
@Override
public String toString() {
return sql;
}
@Override
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
throws HibernateException {
return StringHelper.replace( sql, "{alias}", criteriaQuery.getSQLAlias(criteria) );
}
public static Order sql(String sql){
return new UDOrder(sql, true);
}
}
分享到:
相关推荐
Hibernate的Criteria用法总结Hibernate的Criteria用法总结
Hibernate Criteria 排序的問題
关于Hibernate操作持久化类的Criteria方式的书本方法
Criteria查询将数据查询条件封装成为一个对象,可以堪称是传统SQL的对象化表示。
hibernate criteria 分组 排序 关联 hibernate criteria 分组 排序 关联
NULL 博文链接:https://beisicao.iteye.com/blog/955674
hibernate criteria的使用方法
这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友
Hibernate Criteria 完全使用详解
NULL 博文链接:https://chenlinbo.iteye.com/blog/335677
Hibernate中Criteria的完整用法
Hibernate中Criteria的完整用法 Criteria 是一个完全面向对象,可扩展的条件查询API,通过它完全不需要考虑数据库底层如何实现、SQL语句如何...
Hibernate中的查询:HQL、Criteria、原生SQl的Demo,希望可以帮助大家理解Hibernate查询。
本文旨在为读者呈现不同的方式查询方式:HQL方式的查询、SQL原生态SQL方式的查询、以及Criteria方式的查询,拓展查询的不同实现思路,开阔视野、并涵盖了部分的Hibernate增删改的基本操作。
hibernate-Criteria hibernate-Criteria hibernate-Criteria hibernate-Criteria hibernate-Criteria hibernate-Criteria
Hibernate-Criteria_模糊查询
Hibernate中Criteria的用法
Hibernate 提供了操纵对象和相应的 RDBMS 表中可用...Hibernate Session 接口提供了 createCriteria() 方法,可用于创建一个 Criteria 对象,使当您的应用程序执行一个标准查询时返回一个持久化对象的类的实例。
NULL 博文链接:https://ssydxa219.iteye.com/blog/1543253