是否可以在不使用@Query注释的情况下编写CrudRepository方法,该方法返回开始日期比今天大30天的所有数据?
我的模型包含3个属性:Device_id,Notification_id和created_on
另外我还希望通过device_id提供不同的数据
示例
如果我将这样的结果存储在数据库中:
| dev_id | not_id | created_on |
| 1 | 1 | 2018-12-01 |
| 1 | 2 | 2018-25-07 |
| 2 | 2 | 2018-25-07 |
| 1 | 3 | 2018-16-12 |
| 2 | 3 | 2018-16-12 |
数据创建的结果应排在前3行,因为创建日期比今天的日期要晚30天
然后,我还想按设备ID来区分数据,这样我就可以获得日期上创建的所有设备ID都大于月份的设备ID
因此,我正在寻找此查询的最佳解决方案
答案 0 :(得分:0)
好的,没有@Query注释很难实现
因此,如果有人在这里搜索类似的解决方案,这就是我的查询:
@Query(value = "SELECT DISTINCT table.device_id, table.notification_id, table.created_on FROM table WHERE table.created_on < DATE(NOW()) - INTERVAL 30 DAY", nativeQuery = true)
List<DeviceNotification> getDeviceIdWithNotificationOlderThan30Days();