Как мне убедиться, что я вставляю данные SQL в правильном порядке с помощью Spring JPA?

#java #spring-boot #jpa

#java #spring-boot #jpa

Вопрос:

Когда я вставляю:

 data1
data2
data3
data4
data5
..
..
..
dataN
  

В базу данных MySQL с помощью этого кода:

 DataLogg dataLogg = new DataLogg(0, time, DO0, DO1, DO2, DO3, AI0, AI1, AI2, AI3, loggerIdValue, samplingTimeValue, pulseNumber, ControlView.selectedBreakPulseLimit, stopSignal, comment);
dataLoggRepository.saveAndFlush(dataLogg);
  

Он будет вставлять такие данные, если мне не повезет.

 data1
data2
data4
data3
dataN
..
..
..
data5
    
  

Вопрос:

Как я могу гарантировать, что в том же порядке, в котором я вставляю строки, я могу читать их в том же порядке? Я не хочу, чтобы они были в случайном порядке. Последние данные должны быть вверху, а первые данные должны быть внизу.

Комментарии:

1. Вы имели в виду порядок автоматического увеличения первичного ключа?

2. @Eklavya Да. Я это реализовал. github.com/DanielMartensson/OpenSourceLogger/blob/master/src /…

3. Если вы используете saveAll, он вставит порядок данного списка.

4. @Eklavya Я это сделал. Но все же база данных иногда создавала случайный порядок. github.com/DanielMartensson/OpenSourceLogger/blob /…

5. Вы имели в виду, что порядок первичных ключей с автоматическим увеличением не поддерживается? Для таблицы нет определенного порядка, он просто отображается по порядку первичного ключа.

Ответ №1:

Вы спросили:

Как я могу гарантировать, что в том же порядке, в котором я вставляю строки, я могу читать их в том же порядке?

Ответ заключается в том, что в таблице SQL нет внутреннего «порядка» для всех намерений и целей. Способ обеспечить определенный порядок при запросе — использовать ORDER BY предложение с запросом, например

 SELECT name
FROM yourTable
ORDER BY name;
  

Комментарии:

1. В этом случае я не могу выполнить «Порядок по». Я хочу вставить их в порядке вставки.

2. Не происходит. В таблице SQL нет формального порядка, и это не имеет никакого отношения к Spring или используемой вами платформе, это свойство базы данных.

3. Могу ли я выполнить порядок по времени?

4. У меня есть временной код с этим форматом в столбце YYYY-MM-DD hh:mm:ss:MMM