我正在使用Hibernate 3.X.我想添加一个标准订单如下:
Criteria criteria = ...;
criteria.addOrder( Order.desc( "name" );
我希望空值出现在底部。但是,我在顶部得到空值。我无法使用' NULLS LAST"因为它不受hibernate 3.X支持。
请指导我这个
答案 0 :(得分:-1)
以下是其中一个可能的例子:
<强> 1。标准基本查询 创建一个条件对象并从数据库中检索所有“StockDailyRecord”记录。
Criteria criteria = session.createCriteria(StockDailyRecord.class);
<强> 2。标准订购查询 结果按“日期”按升序排序。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.addOrder( Order.asc("date") );
结果按降序排序“日期”。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.addOrder( Order.desc("date") );
第3。标准限制查询 Restrictions类提供了许多方法来进行比较操作。
<强> Restrictions.eq 强>
确保valume等于10000。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.eq("volume", 10000));
Restrictions.lt,le,gt,ge
确保音量小于10000。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.lt("volume", 10000));
确保音量小于或等于10000。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.le("volume", 10000));
确保音量大于10000。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.gt("volume", 10000));
确保音量大于或等于10000。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.ge("volume", 10000));
<强> Restrictions.like 强>
确保股票名称以“MKYONG”开头,后跟任何字符。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.like("stockName", "MKYONG%"));
Restrictions.between
确保日期在开始日期和结束日期之间。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.between("date", startDate, endDate));
Restrictions.isNull,isNotNull
确保音量为空。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.isNull("volume"));
确保该卷不为空。
Criteria criteria = session.createCriteria(StockDailyRecord.class)
.add(Restrictions.isNotNull("volume"));
许多其他限制功能可以找到here。
第3。分配结果的标准 标准提供的功能很少,使分页非常容易。从第20条记录开始,从数据库中检索下10条记录。
Criteria criteria = session.createCriteria(StockDailyRecord.class);
criteria.setMaxResults(10);
criteria.setFirstResult(20);