Обновление записи базы данных Hibernate, код работает, но база данных не обновляется - PullRequest
0 голосов
/ 30 апреля 2018

Я новичок в программировании, но я наслаждаюсь опытом обучения. Я застрял, но хотел бы помочь. Я пытаюсь написать простой метод для пополнения баланса пользователя, код метода пополнения ниже, как только сумма будет обновлена, запишите ее в БД, я использую Mysql.

Код компилируется, и я получаю ожидаемые результаты в памяти, баланс обновляется, однако он не записывается в БД и не содержит ошибок. Я подозреваю, что что-то не так с моей реализацией запроса на обновление. Я устанавливаю баланс, начинаю транс, обновляю, сбрасываю, заканчиваю транс, не уверен, что это правильный путь. Цените некоторые направления.

public void Topup(BigDecimal amount)
{
    System.out.println("entering topup method");
    EntityManager em = emf.createEntityManager();

    if (balance!=null)
    {
    balance = balance.add(amount);

    }

    else {
        balance = balance.ZERO ;
        balance = balance.add(amount);
    }

    setBalance(balance);

    em.getTransaction().begin();

    em.createQuery("update Balance set balance = balance where 
    idsender=idsender")
    .executeUpdate();

    em.flush();
    em.getTransaction().commit();
    em.close();
}

1 Ответ

0 голосов
/ 30 апреля 2018

Вы постоянно используете одну и ту же постоянную строку: «Обновить баланс установленный баланс = баланс, где idsender = idsender».

Вам нужно вставить переменные в строку, что-то вроде

"update Balance set balance = " + balance + "where idsender = " + someId

Конечно, вам нужно преобразовать баланс в строку, а также заменить someId на правильное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...