我正试图将文本强制转换为varchar,因为我以前遇到过有关此错误消息的问题:
The data types text and varchar are incompatible in the equal to operator RSS
通过快速搜索,我发现需要将文本值转换为varchar的值。我已经这样做了:
@Query("SELECT e FROM DeStudent e " +
"WHERE CAST(e.studentExpression as varchar) = :studentExpression" +
"AND e.deactivationTime = '9999-12-31 00:00:00.000' " +
"AND (:studentName is null OR e.name = :studentName)" +
"AND (:studentDescription is null OR e.description = :studentDescription)" +
"AND (:studentExpression is null OR e.studentExpression = :studentExpression)"
)
然而,我似乎得到了这个错误:
2020-07-08 14:42:39.947 ERROR o.h.hql.internal.ast.ErrorCounter: line 1:142: unexpected token: e
由于这个修改,它不允许我运行应用程序。我不确定我做了什么,有什么帮助吗?谢谢您。我也尝试过不同的变体,比如将演员阵容移到“选择”部分,但仍然是相同的错误。
1条答案
按热度按时间mwkjh3gx1#
错误消息告诉您问题出在字母“e”未被理解。你的select子句就是问题所在。你写的
SELECT e FROM DeStudent e
,它将destudent表别名为“e”,但是select子句应该指定列,而不仅仅是“e”。要选择所有内容,请使用*。