我正在创建Spring应用程序,并且正在使用JpaRepository简化数据库查询。
我在使用DISTINCT ON时使用JpaRepository约定创建方法名称时遇到问题。这是我的SQL查询:
SELECT DISTINCT ON (s.device_id)
s.status_id,
s.error,
s.receive_time,
s.device_id
FROM statuses s
ORDER BY s.device_id, s.receive_time DESC
我尝试过这样的名称,但它不起作用:
List<Status> findDistinctByDeviceId_OrderByReceiveTimeDesc();
这是我的课程(简体):
public class Status {
private long status_id;
private String error;
private Date receive_time;
private Device device_id;
}
public class Device {
private long device_id;
private String name;
}
甚至可以在方法名称中使用DISTINCT ON吗?我不想使用SQL查询,因为我的类比上面的复杂得多,并且我想添加每个要查询的字段。
我用了这样的东西,它的工作原理是:
@Query(value = "select distinct on (s.device_id) s.* " +
"from statuses s " +
"order by s.device_id, s.receive_time desc",
nativeQuery = true)
public List<Status> getStatuses();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句