У меня есть следующая проблема: я загружаю «dif» -table только с удалением и вставками. «Изменение» определяется удалением, за которым следует вставка.Порядок строк в таблице
В этой таблице нет первичного ключа и нет поля для заказа. Я хочу использовать Hibernate для загрузки этой таблицы. (SELECT obj FROM MyDifTable obj WHERE obj.group = groupId
)
Прямо сейчас, я использую ключ по всем значениям и указанному выше запросу, и я не получаю строки в том же порядке, что и в исходной таблице.
Мои вопросы:
- Как я позволяю Hibernate всегда возвращает тот же порядок, что и в таблице?
- Как указать первичный ключ в этом случае?
Я знаю, что это такая плохо спроектированная вещь, и я пытался аргументировать конструкторскую команду, но безуспешно.
С наилучшими пожеланиями, Кай
Имейте в виду, что в целом «SELECT» без «ORDER BY» не дает никаких гарантий относительно порядка, в котором строки возвращаются. Имея это в виду, запрос * «того же порядка, что и в таблице» * является сомнительным. – NPE
Как уже указывал AIX: строки в (реляционной) таблице do ** не имеют никакого порядка **. Единственный способ обеспечить последовательный заказ - использовать 'ORDER BY' –
Учитывать предыдущие комментарии. Обычно ваш конкретный движок базы данных будет иметь какое-то свойство «row_id», которое вы могли бы использовать, чтобы дать вам некоторую сортировку. Но предыдущие комментарии старые правда. Синтаксис зависит от двигателя. – pcalcao