Я пытаюсь обновить строку в базе данных, основываясь на изменениях, сделанных пользователем. Я передал объект Lesson своему менеджеру базы данных, и теперь мне нужно обновить объект в моей базе данных, чтобы он соответствовал свойствам переданного объекта.
У меня такое ощущение, что есть лучший способ, чем я сейчас думаю. Мое предположение состояло в том, чтобы получить объект через идентификатор, установить все его свойства в новое значение и зафиксировать его. Но так как аргумент 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!");
}
}
Я использую автоматически сгенерированные ключи, поэтому я не уверен, что это вызовет проблему.