2015-04-22 3 views
0

У меня есть короткий вопрос о EntityManager. У меня есть метод updateAdmin(Admin a). Поведение: Этот метод должен обновлять существующий Admin в моей базе данных. Возврат true, если администратор существует, обновление было успешным. Возвращает false, если администратор, который должен быть обновлен, не существует в базе данных.Как проверить, нет ли изменений в базе данных?

Теперь я хочу написать метод тестирования JUnit. Я могу проверить, что метод updateAdmin(Admin a) возвращает true, если Администратор уже находится в базе данных, и обновление было успешным.

Я также могу проверить, что метод возвращает false, если Admin не существует. Но как я могу проверить, что база данных не была изменена, и обновление не было успешным?

Спасибо за ваш ответ! :)

+0

должен попытался 'Mysqli :: begin_transaction ([INT $ флаги [, строка $ имя]])' –

+0

Я предполагаю, что вы получите исключение, когда оператор обновления базы данных взрывается. Вы можете проверить это прямо сейчас, например, оставив свойство, которое не является нулевым как null. – Gimby

ответ

0

Вы можете попробовать find() -в администратора поначалу. Если он еще не существует, верните false или выполните команду merge() и верните true. Предполагая, что вы используете JPA EntityManager это должно работать

public boolean updateAdmin(Admin a) { 
    Admin existingAdmin = entityManager.find(a.getId(), Admin.class); 
    if (existingAdmin == null) { 
     return false; 
    } 

    em.merge(a); 

    return true; 
} 
Смежные вопросы