0

我想通过使用此正文通过 zip(String) 获得客户:

{
  "entity": "demo$Customer",
  "query": "select c from demo$Customer c where c.zip = :zip",
  "params": [
        {
          "name": "zip",
          "value": "12345"
        }
    ]
}

我收到此错误:

java.lang.IllegalArgumentException:您尝试为参数 zip 设置类型为 java.math.BigDecimal 的值,预期类型为 java.lang.String 从查询字符串中选择 c from demo$Customer c where c.zip = :压缩。

如果我将值更改为 C12345,我会得到数据。

我的参数是错误的还是当值是 BigDecimal 并且域属性是字符串时的错误?如何将 vale 显式标记为 String?

感谢您的回答。

4

1 回答 1

2

您必须明确指定参数类型。您的请求将如下所示:

{
  "entity": "demo$Customer",
  "query": "select c from demo$Customer c where c.zip = :zip",
  "params": [
        {
          "name": "zip",
          "value": "123",
          "type": "string"
        }
    ]
}

如果您有具有特定格式的日期或数字参数,则可以成功处理具有隐式类型的参数。当您有一个看起来像日期或数字的字符串参数时,则需要显式类型。

于 2016-11-22T11:28:50.920 回答