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 DataType。

4

1 回答 1

0

似乎 Postgres 希望您绑定特定的货币类型,而不是 BigDecimal。您可能需要映射到 Postgres JDBC 货币类型,或使用 EclipseLink 中的转换器。

您还可以在查询中禁用参数绑定,以便将类型打印为字符串。

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