春季-查找开始日期和今天之间的差异大于30天(每月)的所有位置

时间:2018-12-18 11:10:38

标签: java spring spring-boot spring-repositories

是否可以在不使用@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

因此,我正在寻找此查询的最佳解决方案

1 个答案:

答案 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();