Ошибка при вызове хранимой процедуры в MySQL (спящий режим JAVA)

0

У меня есть странная проблема, что я могу успешно вызвать хранимую процедуру MySQL. Но вызов его с помощью Java возвращает ошибку.

Ниже приведен мой метод контроллера:

public double getBalance(String number) {
    double balance ;
    try {
        Query query = getSession().createSQLQuery("CALL getBalance(:string_number)").addEntity(Wallet.class)
                .setParameter("string_number", number);

        List result = query.list();

        if (result.size() == 0) {
            balance = -1.0;
        } else {
            balance = (double) result.get(0);
        }
    } catch (Exception ex) {
        throw ex;
    }
    return balance;
}

Это моя хранимая процедура:

CREATE DEFINER='root'@'localhost' PROCEDURE 'getBalance'(IN string_number varchar(19))
BEGIN
select amount from wallet where number=string_number;
END

Ошибка:

SEVERE: Servlet.service() for servlet [dispatcher] in context with path 
[/DigitalWallet] threw exception [Request processing failed; nested 
exception is javax.persistence.PersistenceException: 
org.hibernate.exception.SQLGrammarException: could not execute query] with 
root cause
java.sql.SQLException: Column 'number' not found.

У меня есть столбец чисел, и я могу успешно вызвать хранимую процедуру в MySQL Workbench.

Теги:

1 ответ

0
Лучший ответ

Вместо этого вы должны использовать doWork(), вы можете в основном создать соединение с выражениями лямбда. Вы можете увидеть несколько примеров ЗДЕСЬ

  • 0
    Если вы не знакомы с CallableStatement, вы можете искать документацию

Ещё вопросы

Сообщество Overcoder
Наверх
Меню