Java JPA:如何获取不同列的记录:

Java JPA:如何获取不同列的记录:,java,mysql,sql,hibernate,jpa,Java,Mysql,Sql,Hibernate,Jpa,如何编写查询以获取在一列中不同且在另一列中顺序不同的记录 我能够使用以下语句获取记录 select * from (select * from t1 where id=14 order by ttimestamp desc) as h group by hnumber order by ttimestamp desc 但当我在JPA中尝试同样的方法时 SELECT m from (SELECT m from t1 m WHERE m.user =

如何编写查询以获取在一列中不同且在另一列中顺序不同的记录

我能够使用以下语句获取记录

  select * from
 (select * from t1 
  where id=14 
  order by ttimestamp desc) as h 
  group by hnumber 
  order by ttimestamp desc
但当我在JPA中尝试同样的方法时

  SELECT m from 
  (SELECT m from t1 m 
   WHERE m.user = :user 
   ORDER BY m.tTimestamp DESC) as h 
  GROUP BY m.hNumber 
  ORDER BY m.tTimestamp DESC
我说语法错误时出错了

  Exception Description: Syntax error parsing [SELECT m from (SELECT m from t1 m WHERE m.user = :user ORDER BY m.tTimestamp DESC) as h GROUP BY m.hNumber ORDER BY m.tTimestamp DESC]. 
   The right parenthesis is missing from the sub-expression.
   An identification variable must be provided for a range variable declaration.
   The query contains a malformed ending.

非常感谢您的帮助。

@Leo我也试过这个。。从中选择m从t1中选择n,其中n.user=:用户订单按n.tTimestamp DESC作为h组按m.hNumber ORDER按m.tTimestamp DESC,但它不起作用。如果您的子查询是h,为什么选择m?@Leo您能建议我实现此查询的正确方法吗。我尝试了从SELECT n from t1 n中选择m,其中n.user=:user ORDER BY n.tTimestamp DESC m GROUP BY m.hNumber ORDER BY m.tTimestamp DESC,但失败了。TBH我不明白为什么您需要在语句中进行子选择,外部组BY会使内部顺序BY无效。是否要检索每个ID或特定ID的最新条目?@TassosBassoukos是的,我要检索t1表中每个具有最大时间戳的ID的记录。