查询Money / BigDecimal数据类型

时间:2012-12-14 05:12:59

标签: jpa-2.0 ejb-3.0 eclipselink

我正在尝试查询表格以查找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。

1 个答案:

答案 0 :(得分:0)

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

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

query.setHint("eclipselink.jdbc.bind-parameters", "false");