简体   繁体   中英

How do I convert this SQL query into hibernate

Can someone please tell me how to convert this SQL query into hibernate?

SELECT * FROM sys_quote_master AS g1
INNER JOIN 
  (SELECT order_base_id, order_id FROM sys_quote_master
   GROUP BY order_base_id, order_date_last_revised 
   ORDER BY order_date_last_revised desc) AS g2
ON g2.order_id = g1.order_id;

Basically,

I have tried this and it doesn't work:

DetachedCriteria crit1 = DetachedCriteria.forClass(QuoteMaster.class);
ProjectionList pList = Projections.projectionList();
pList.add(Projections.groupProperty("orderBaseId"));
session = HibernateSessionFactory.currentSession();
Criteria crit = session.createCriteria(QuoteMaster.class);
Criteria c = crit.createCriteria("QuoteMaster", CriteriaSpecification.INNER_JOIN);
c.setProjection(pList);

I get this error:

org.hibernate.QueryException: could not resolve property: this of: QuoteMaster

And I think it has to do with this line of code were I am trying to create an inner join to the same table:

Criteria c = crit.createCriteria("QuoteMaster", CriteriaSpecification.INNER_JOIN);

So basically, my question is 'How to create a join to the same table using Criteria.createCriteria or Criteria.createAlias?' The doc for Criteria class states the first parameter is a dot-separated property path, but what the heck does that mean? :)

Every example I found so far shows how to do this with 2 or 3 tables but not to the same table and I have no idea what to use for the first argument.

我不知道您的实体状况如何,这应该是一个大概的主意。

from SystQuoteMasterEntity sqm join ( select sqm1.orderbaseid, sqm1.orderId from SystQuoteMasterEntity sqm1 group by orderbaseid,orderdatelastrev order by orderdatelast desc) g2 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM