【问题标题】:How to check if there's no change in a database?如何检查数据库中是否没有变化?
【发布时间】:2015-04-22 11:02:19
【问题描述】:

我有一个关于EntityManager 的简短问题。 我有一个方法updateAdmin(Admin a)。 行为: 此方法应更新我的数据库中的现有管理员。 如果管理员存在且更新成功,则返回 true。 如果数据库中不存在需要更新的 Admin,则返回 false。

现在我想写一个 JUnit 测试方法。 如果管理员已经在数据库中并且更新成功,我可以检查updateAdmin(Admin a) 方法是否返回true

如果Admin 不存在,我还可以检查该方法是否返回false。 但是如何检查数据库没有改变,更新没有成功呢??

感谢您的回答! :)

【问题讨论】:

  • 必须尝试mysqli::begin_transaction ([ int $flags [, string $name ]] )
  • 我假设您在数据库更新语句崩溃时遇到异常。您现在可以通过例如将不可为空的属性保留为空来测试它。

标签: java database junit entitymanager


【解决方案1】:

您可以先尝试find()-ing 管理员。如果它不存在,则返回 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;
}

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 1970-01-01
    • 2021-11-08
    • 2021-04-05
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多