Java 为什么JPA Spring Boot将MySQL数据按错误的顺序放置?
我有一个带有JPA的Spring Boot应用程序,它将值存储到MySQL服务器中。但有时它不能正确插入数据 我做了一个阶梯图,先升后降。正如你所看到的,它并不成功。 来自MySQL的数据示例如下所示。在这里,我们可以看到2633在开始,然后2633在结束。在中间我们可以看到3096和2901。顺序不正确 数据库的实体如下所示:Java 为什么JPA Spring Boot将MySQL数据按错误的顺序放置?,java,mysql,spring-boot,jpa,Java,Mysql,Spring Boot,Jpa,我有一个带有JPA的Spring Boot应用程序,它将值存储到MySQL服务器中。但有时它不能正确插入数据 我做了一个阶梯图,先升后降。正如你所看到的,它并不成功。 来自MySQL的数据示例如下所示。在这里,我们可以看到2633在开始,然后2633在结束。在中间我们可以看到3096和2901。顺序不正确 数据库的实体如下所示: @Entity @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class DataL
@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DataLogg {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
// X axis for the plot
private String dateTime;
// Y Axis for the plot
private int DO0;
private int DO1;
private int DO2;
private int DO3;
private float AI0;
private float AI1;
private float AI2;
private float AI3;
// Other
private long loggerId;
private int samplingTime;
private int pulseNumber;
private int breakPulseLimit;
private boolean stopSignal;
private String comment;
}
以下是我插入数据的方式:
private DataLoggRepository dataLoggRepository;
DataLogg dataLogg = new DataLogg(0, time, DO0, DO1, DO2, DO3, AI0, AI1, AI2, AI3, loggerIdValue, samplingTimeValue, pulseNumber, ControlView.selectedBreakPulseLimit, stopSignal, comment);
dataLoggRepository.save(dataLogg)
问题:
有没有办法按正确的顺序插入数据,并确保数据在正确的时间插入?您如何查询数据?有按排序的条款吗?@stdunbar我不知道。我不知道按顺序是什么意思。但我肯定我忘了实现一些东西,像MySQL这样的数据库可能不会按照您期望的方式排序,特别是在有表索引的情况下。我不能肯定我是否完全理解了您的代码,但看起来您希望通过采样时间从数据日志顺序中选择*之类的方法读取数据,尽管我对数据库中的列名没有把握。介绍了从数据库中检索数据的一些基础知识(选择关键字)。听起来好像您认为延迟是因为数据顺序不正确。如果在读取数据时没有对数据进行排序,则无法保证数据的外观。如果订单很重要,那么您必须有一个
order by
才能将其拉出。无论您如何插入它,重要的是您如何将其拉出。请看一下我提供的链接,了解数据库基础知识。