Nulls Last的Hibernate查询顺序

时间:2017-06-24 00:52:54

标签: java oracle hibernate

我正在使用Hibernate 3.X.我想添加一个标准订单如下:

Criteria criteria = ...;
criteria.addOrder( Order.desc( "name" );

我希望空值出现在底部。但是,我在顶部得到空值。我无法使用' NULLS LAST"因为它不受hibernate 3.X支持。

请指导我这个

1 个答案:

答案 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);