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

时间:2019-05-03 17:46:01

标签: java jpa persistence

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

我觉得有比我现在想的更好的方法。我的猜测是通过id获取对象,将其所有属性设置为新值,然后提交。但是,由于id参数与changedLes.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!");
    }
}

我使用的是自动生成的密钥,因此不确定是否会引起问题。

1 个答案:

答案 0 :(得分:1)