java - JPA:用具有相同ID的对象替换数据库中的对象

标签 java jpa persistence

我正在尝试根据用户所做的更改来更新数据库中的一行。我将一个 Lesson 对象传递给我的数据库管理器,现在我需要更新数据库中的对象,以便它与传递的对象的属性匹配。

我感觉有比我现在想的更好的方法。我的猜测是通过 id 获取对象,将其所有属性设置为新值,然后提交。但由于 id 参数与changeLes.getId()相同,感觉覆盖旧的数据库条目可能是更简单的方法。但是我不知道如何执行此操作以及这是否是正确的方法。

void update(ClubLes changedLes, int id) {
     try {
        GenericDaoJpa.openPersistency();
        Clubles les = em.find(ClubLes.class, id);
        em.getTransaction().begin();
        //setters? eg les.setName(changedLes.getName())
        em.getTransaction().commit();
        GenericDaoJpa.closePersistency();
    } catch (NoResultException e) {
        GenericDaoJpa.closePersistency();
        throw new NoResultException("Les could not be modified! try again!");
    }
}

我使用自动生成的 key ,所以我不确定这是否会导致问题。

最佳答案

关于java - JPA:用具有相同ID的对象替换数据库中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974827/

相关文章:

java - 加载相关实体时实体图被忽略

java - Jenkins 问题 : How to get the list of files from a shared location using Java

Java 8集合: filter with function don't work

java - 带有@ManyToOne 的两个实体应该加入同一个表

postgresql - 如何向 jpa/hibernate 查询提供 LocalDateTime?

c# - 将 trie 保存到磁盘

java - 读取 cucumber 项目中的 cucumber 结果文件

java - 测试不工作

java - 无法刷新非托管对象

django - Heroku:每次 dyno 重新启动时都会丢失 Django 数据库文件