1

MRP 価格を検索するためにテーブルをクエリしようとしています。

BigDecimal mrp = 5.5;

Query query = em.createQuery("SELECT p FROM Product p WHERE p.mrp=:mrp");
query.set("mrp",mrp);

上記でエラーが発生します

Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: money = numeric

通常のSQL構文では、私が使用する

select * FROM a.product WHERE mrp='5.5';

私の質問は、データベース内の Money データ型の検索をどのように構成するかです。

4

1 に答える 1

0

Postgres は、BigDecimal ではなく、特定のお金の種類をバインドすることを望んでいるようです。Postgres JDBC の money タイプにマップするか、EclipseLink で Converter を使用する必要がある場合があります。

クエリでパラメーター バインドを無効にして、型を文字列として出力することもできます。

query.setHint("eclipselink.jdbc.bind-parameters", "false");
于 2012-12-17T15:09:40.683 に答える