使用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
。假设car
和truck
表示为小数,因此表格可以按vehicleType
排序。
更具体地说,我想使用hibernate做this。
答案 0 :(得分:0)
最后我发现我可以使用Hibernate创建一个本地SQL Query
。
例如:
getCurrentSession().createSQLQuery("SELECT * FROM Vehicle").list();
缺点是Hibernate返回Object[]
而不是Vehicle
类型的对象(在上面的示例中)。