我希望通过zip(String)使用此正文来获取客户:
{
"entity": "demo$Customer",
"query": "select c from demo$Customer c where c.zip = :zip",
"params": [
{
"name": "zip",
"value": "12345"
}
]
}
我收到此错误:
java.lang.IllegalArgumentException:您试图设置一个值 类型为java.math.BigDecimal的类,用于参数zip with expected 查询字符串中的类java.lang.String选择c from 演示$ Customer c其中c.zip =:zip。
如果我将值更改为C12345,我会得到数据。
我的params是错误还是错误,而值是BigDecimal而domain属性是String?如何明确地将该值标记为String?
感谢您的回答。
答案 0 :(得分:2)
您必须明确指定参数类型。您的请求将如下所示:
{
"entity": "demo$Customer",
"query": "select c from demo$Customer c where c.zip = :zip",
"params": [
{
"name": "zip",
"value": "123",
"type": "string"
}
]
}
如果您具有特定格式的日期或数字参数,则会成功处理具有隐式类型的参数。当您的字符串参数看起来像日期或数字时,则需要显式类型。