обновление объектов с помощью режима гибернации при необходимости

#hibernate

#режим гибернации

Вопрос:

у меня следующая ситуация: пользователь загружает CSV-файл. каждая строка в файле csv является объектом. я анализирую файл и создаю тысячи объектов, которые сохраняю в базе данных через режим гибернации. теперь может быть возможно, что пользователь изменяет, например, 3 записи в файле csv, но загружает весь файл. это означает, что, например, 9,997 записей равны и только 3 отличаются. какой наилучший способ обновить данные с помощью гибернации?

я надеюсь, что кто-нибудь может мне помочь, пожалуйста.

заранее благодарю, Саймон

Ответ №1:

Если у вас есть уникальный идентификатор и вы используете update / merge , то hibernate не будет создавать новые записи.

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

1. нет, проблема в том, что UID (= первичный ключ) создается автоматически, и когда я разбираю файл в следующий раз, у меня нет UID, поэтому мне нужен способ узнать, какой объект в базе данных принадлежит строке в файле csv, а затем я должен проверить, равны значения или нет.

2. таким образом, вы не можете идентифицировать записи. Тогда вы не сможете этого сделать — удалите все и вставьте заново.

3. у меня была идея сохранить хэш-код каждого отдельного объекта в БД, и после анализа csv я могу найти каждый объект с помощью хэш-кода.

4. что ж, это вариант. Просто создайте индекс для хэша. И измерьте это, потому что удаление и вставка могут быть быстрее.

5. я думаю, что была проблема, почему я не должен удалять и вставлять ее, но я не могу вспомнить прямо сейчас. 🙂