【发布时间】:2017-08-17 17:18:05
【问题描述】:
我想使用 CriteriaQuery 的 LIKE-Function 从我的数据库中过滤 DOUBLE (6,2) 值。但它抛出一个异常:
Internal Exception: java.sql.SQLSyntaxErrorException: No authorized routine named 'LIKE' of type 'FUNCTION' having compatible arguments was found.
代码:
stundensatz.ifPresent(s -> criteriaQuery.where(criteriaBuilder.like(mitarbeiter.get("stundensatz"), "%" + s + "%")));
“Stundensatz”是指小时费率。我对INTEGER做了同样的事情,效果很好。如何使用 LIKE 过滤 DOUBLE?我真的需要帮助。我在这里找不到任何关于此的文章。我尝试将mitarbeiter.get("stundensatz") 转换为字符串或整数,但这不起作用。
提前谢谢你。 sven_meye
【问题讨论】:
-
你是如何尝试将 doulbe 转换为 String 的?
-
因为
like仅适用于字符串,所以强制转换是必不可少的 -
我试过 toString() 和 CriteriaBuilder.toString
-
但不治疗?
-
什么是 TREAT ?
标签: java mysql jpa criteria-api