Я создаю приложение конвертера валют с использованием JavaEE. Клиент в Интернете вводит сумму и валюту (например, «USD» и «EUR»).java.sql.SQLSyntaxErrorException: Ошибка синтаксиса:> Обнаружено "FROM"
Я не эксперт в области SQL, когда я бегу и протестировать веб-страницу, я получаю следующее сообщение об ошибке:
java.sql.SQLSyntaxErrorException: Syntax error: >Encountered "FROM" at line 1, column 12. Error Code: 30000 Call: SELECT >ID, FROM, RATE, TO, VALUE FROM RATE WHERE ((FROM = ?) AND (TO = ?)) bind >=> [2 parameters bound] Query: ReadAllQuery(referenceClass=Rate >sql="SELECT ID, FROM, RATE, TO, VALUE FROM RATE WHERE ((FROM = ?) AND (TO >= ?))")
Я использовал метод менеджер объект createQuery
, который получает эти ценности и попытаться найти валюту коэффициент конверсии:
public double convertTo(double value, String from, String to) {
TypedQuery<Rate> query = em.createQuery(""
+ "SELECT c FROM Rate c WHERE c.from = :from AND c.to = :to", Rate.class);
query.setParameter("to", to);
query.setParameter("from", from);
Rate result = query.getSingleResult();
if (result == null) {
throw new EntityNotFoundException("Can't find rate");
}
return value * result.getValue();
}
Я пытаюсь изменить запрос, но он не работает. Какие-либо предложения?
Да, это было ключевым словом, благодаря @Peter_Saly. Теперь проблема заключается в том, что 'query.getSingleResult();' не находит строку в моей базе данных, которая соответствует значениям из и в валюте. это дает мне исключение: «getSingleResult() не извлекал никаких объектов». Моя таблица имеет 4 col: id, fromcurrency, tocurrency, rate. Я постараюсь увидеть этот вопрос сейчас. :( – teowey
Я рекомендую использовать курсы для ссылки на валюту. Ориентировочная валюта может быть евро. С валютой referrence вам не нужно поддерживать все комбинации. Загрузите все ставки. Вычисление будет стоить евро, а не в валюте назначения. –