Как обновить первые N строк с помощью JPA и Hibernate

1

Я хочу только обновить первую строку N в SQL:

UPDATE Table1 SET c1 = 'XXX' WHERE Id IN (SELECT TOP 10 Id FROM Table1 ORDER BY c2)

Может ли Hibernate делать это при обновлении ONE?

Теги:
database
hibernate
jpa

2 ответа

1

С Hibernate вы всегда можете выдать собственный запрос как таковой, но текущий контекст Persistence Context не будет знать удаленные записи.

Пока вы удаляете относительно небольшое количество записей, вы можете просто выбрать N объектов, а затем использовать операцию удаления, чтобы вы могли воспользоваться оптимистичными проверками блокировки и предотвратить потерянные обновления.

Если вы хотите удалить много записей, тогда вопрос массового удаления будет более уместным. Вы даже можете запустить запрос SQL DELETE, который вы упомянули. Именно поэтому JPA и Hibernate позволяют использовать собственные SQL-запросы в любом случае.

0

SetMaxResults должны работать нормально.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню