将文本强制转换为varchar

1szpjjfi  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(362)

我正试图将文本强制转换为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

由于这个修改,它不允许我运行应用程序。我不确定我做了什么,有什么帮助吗?谢谢您。我也尝试过不同的变体,比如将演员阵容移到“选择”部分,但仍然是相同的错误。

mwkjh3gx

mwkjh3gx1#

错误消息告诉您问题出在字母“e”未被理解。你的select子句就是问题所在。你写的 SELECT e FROM DeStudent e ,它将destudent表别名为“e”,但是select子句应该指定列,而不仅仅是“e”。要选择所有内容,请使用*。

SELECT * FROM DeStudent e

相关问题