是否可以使用Hibernate标准从同一个表中获得两个唯一的结果?例如,如果我想询问最近的车辆类型(卡车或汽车),该怎么办?
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标准查询中获得最新的car和最新的truck。假设car和truck是用小数表示的,这样表就可以按vehicleType排序。
更具体地说,我想使用hibernate来做this。
发布于 2017-06-08 22:17:28
最后,我发现我可以使用Hibernate制作一个本机SQL Query。
例如:
getCurrentSession().createSQLQuery("SELECT * FROM Vehicle").list();这样做的缺点是Hibernate返回一个Object[],而不是Vehicle类型的对象(在上面的例子中)。
https://stackoverflow.com/questions/44400883
复制相似问题