我在JPA Repository类中使用jpql创建了一个自定义查询。如果documentText列包含:text,则该查询将简单地返回一个列表作为DocumentDTO。对于此操作,我需要执行rewrite操作。
代码:
@Query("SELECT new com.hakstudio.archiveapp.dto.DocumentDTO" +
"(id, name, accessAuth, uploadedDate, uploadedBy, uploadedByTc, editedBy, editedByTc) " +
"FROM Document " +
"WHERE LOWER(documentText) LIKE CONCAT('%', LOWER(:text), '%')")
List<DocumentDTO> findByDocument(@Param("text") String text);
字符串
错误:
org.hibernate.QueryException: Parameter 1 of function lower() has type STRING, but argument is of type java.lang.String
型
我找不到如何将java.lang.string类型转换为string。我应该这样做吗?请帮助我。我无法解决错误2天。
我尝试了这个代码,但我没有得到任何结果。
@Query("SELECT new com.hakstudio.archiveapp.dto.DocumentDTO" +
"(id, name, accessAuth, uploadedDate, uploadedBy, uploadedByTc, editedBy, editedByTc) " +
"FROM Document " +
"WHERE LOWER(documentText as string) LIKE CONCAT('%'," +
"LOWER(:text as string)" +
",'%')")
List<DocumentDTO> findByDocument(@Param("text") String text);
型
2条答案
按热度按时间62o28rlo1#
在调用findByDocument方法之前,将字符串参数“text”转换为“text”
sigwle7e2#
我用这种方式解决了这个错误。
字符串