【问题标题】:Query Money/BigDecimal Datatype查询 Money/BigDecimal 数据类型
【发布时间】:2012-12-14 05:12:59
【问题描述】:

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

【问题讨论】:

    标签: jpa-2.0 ejb-3.0 eclipselink


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2020-10-26
      • 2018-05-07
      • 1970-01-01
      相关资源
      最近更新 更多