我正在尝试查询表格以查找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。
答案 0 :(得分:0)
似乎Postgres希望您绑定特定的货币类型,而不是BigDecimal。您可能需要映射到Postgres JDBC资金类型,或使用EclipseLink中的Converter。
您还可以在查询中禁用参数绑定,以便将类型打印为String。
query.setHint("eclipselink.jdbc.bind-parameters", "false");