2016-12-03 21 views
0

「FROM」が発生しました。 Webベースのクライアントは金額と通貨を入力します(例: 'USD'と 'EUR')。java.sql.SQLSyntaxErrorException:構文エラー:>私はJavaEEのを使用して、通貨コンバータアプリケーションを構築しています

私はSQLの専門家、私は実行して、Webページをテストするとき、私は次のエラーが表示されていないよ。私は、これらの値を取得し、エンティティ・マネージャ方法createQueryを使用して通貨を見つけよう

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 >= ?))")

コンバージョン率:

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(); 
} 

私はクエリを変更しようとしていますが、どちらも機能していません。助言がありますか?

答えて

0

エスケープfromキーワードはキーワードか名前を変更するためです。

二重引用符 "from"または[from]

+0

はい、感謝@Peter_Salyというキーワードでした。問題は今、 'query.getSingleResult();'は、私のデータベースのfromとto currencyに一致する行を見つけられません。それは私に例外を与える:「は、getSingleResult()は任意のエンティティを取得できませんでした。」 ID、fromcurrency、tocurrency、率:私のテーブルには、4 COLを持っています。私は今、この問題を確認しようとします。 :( – teowey

+0

私は、通貨を参照するために金利を使用することをお勧めしません。参考通貨はユーロである可能性があります。referrence通貨を使用すると、すべての組み合わせを維持する必要がいけない。すべての料金をロードします。計算は、先の通貨に、その後ユーロになります。いいえ精度の損失を。 –

関連する問題