JPA - 过滤器 MySQL DOUBLE (6,2) with LIKE of CriteriaQuery
JPA - Filter MySQL DOUBLE (6,2) with LIKE of CriteriaQuery
我想使用 CriteriaQuery 的 LIKE 函数从我的数据库中过滤一个 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
我可以像这样使用 like
函数处理数字:
Expression plzInt = kategorie.get("nummer");
Expression plzStr = criteriaBuilder.function("CHAR", String.class, plzInt);
predicates.add(criteriaBuilder.like(criteriaBuilder.upper(plzStr), "%" + nummer.trim().toUpperCase() + "%"));
我想使用 CriteriaQuery 的 LIKE 函数从我的数据库中过滤一个 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
我可以像这样使用 like
函数处理数字:
Expression plzInt = kategorie.get("nummer");
Expression plzStr = criteriaBuilder.function("CHAR", String.class, plzInt);
predicates.add(criteriaBuilder.like(criteriaBuilder.upper(plzStr), "%" + nummer.trim().toUpperCase() + "%"));