Я пытаюсь удалить все записи базы данных для сущности Spring Roo.Когда я смотрю на *_Roo_Entity.aj
, кажется, что не существует метода «удалить все».Я попытался реализовать это сам (Licences
- это имя сущности Roo. Не обращайте внимания на наименование. Оно было получено из базы данных и может быть изменено позже):
public static int Licences.deleteAll() {
return entityManager().createQuery("delete from Licences o").executeUpdate();
}
Компилируетсяпросто отлично, но когда я звоню Licences.deleteAll()
, я получаю следующее исключение:
org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query;
nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query (NativeException)
Добавление @Transactional
не имеет значения.
Что мне здесь не хватает?
Является ли этот подход совершенно неправильным, и мне нужно реализовать его следующим образом:
public static void Licences.deleteAll() {
for (Licences licence : findAllLicenceses()) {
licence.remove();
}
}
Это работает, но достаточно JPA, чтобы перевести его в запрос delete from licences
или создастn
запросов?