查询货币/大十进制数据类型



>我正在尝试查询一个表格以查找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';

所以现在我的问题是我如何在数据库中搜索货币数据类型。

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

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

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

最新更新