【问题标题】:Getting two unique results from same row using Hibernate Criteria使用 Hibernate Criteria 从同一行获取两个唯一结果
【发布时间】:2017-06-06 22:49:36
【问题描述】:

是否可以使用 Hibernate Criteria 从同一个表中获得两个唯一的结果?例如,如果我想查询最近的车辆类型(卡车或汽车)怎么办。

Criteria criteria = getCurrentSession().createCriteria(Vehicle.class);
criteria.add(Restrictions.eq("vehicleType", "car"));  // notice how I want a unique car AND truck
criteria.add(Restrictions.eq("vehicleType", "truck"));
criteria.add(Restrictions.le("date", date));
criteria.addOrder(Order.desc("date"));
criteria.setMaxResults(2);
Object result = criteria.uniqueResult(); // Possible to get most recent unique car and truck?

我想在一次查询中执行此操作,因为我假设对数据库的一次查询将比对数据库的两次查询更快。

所以换个说法,我怎样才能在一个 Hibernate Criteria Query 中获得最新的car 和最新的truck。假设cartruck 用小数表示,所以表格可以按vehicleType 排序。

更具体地说,我想使用 hibernate 执行this

【问题讨论】:

    标签: hibernate criteria hibernate-criteria


    【解决方案1】:

    最后我发现我可以使用 Hibernate 制作原生的SQL Query

    例如:

    getCurrentSession().createSQLQuery("SELECT * FROM Vehicle").list();
    

    这样做的缺点是 Hibernate 返回一个 Object[] 而不是 Vehicle 类型的 Object(在上面的示例中)。

    【讨论】:

      猜你喜欢
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2011-10-04
      • 1970-01-01
      相关资源
      最近更新 更多