如何解决在 Spring Boot JPA 中的 DATE TIME 删除
我这里的代码很慢。它所做的只是收集具有特定实体列的所有行。
List<Data> slectedData = dataService.findByJobNameOrderByDateTime(selectJob.getValue().getName());
List<Data> deleteThese = slectedData.subList(firstIndex - 1,lastIndex);
for (List<Data> deleteTheseLists : Lists.partition(deleteThese,2000)) {
dataService.deleteInBatch(deleteTheseLists);
}
然后我创建一个 sub list
并且我想删除该子列表。
但是子列表可能非常大,然后 dataService.deleteInBatch(deleteTheseLists);
需要很多时间。
entity
类 Data
看起来像这样:
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Data {
// ID
@Id
@GeneratedValue
private long id;
// Made by
private String jobName;
private String calibrationName;
@Column(columnDeFinition = "DATETIME(3)")
private LocalDateTime dateTime;
// Analog input
private float sa0;
private float sa1;
private float sa1d;
}
我想在 dateTime
删除。这在 Spring Boot JPA 中可能吗?
因为我无法在id
上删除,因为id
键在数据库中没有正确索引,因为有时数据库插入数据需要很长时间,有时它会很快。因此,删除 entities
中的 JPA
是一种非常不安全的方式。
解决方法
是的,您可以通过 dateTime
使用 keywords
//equals
deleteByDateTimeEquals(LocalDateTime dateTime);
// lessthan
deleteByDateTimeLessThan(LocalDateTime dateTime);
// greaterthan
deleteByDateTimeGreaterThan(LocalDateTime dateTime);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。