我的愚蠢错误:hibernate SQL抛出无效字符

dem*_*onz 2 java hibernate concatenation

免责声明:这只是我犯的一个愚蠢的错误.没有关闭它,因为也许其他人做了同样的事情,可能会觉得它很有用.

两张桌子:

COR_RADICADO_OFICIO:
- num_radicado (pk)
- ano_radicado (pk)
Run Code Online (Sandbox Code Playgroud)

(我知道,复合pks是邪恶的,但它是遗留数据库,而不是我的设计;))

COR_RESPUESTA_OFICIO:
- num_radicado (text)(fk)
- ano_radicado (number)(fk)
- requiere_respuesta (number)
Run Code Online (Sandbox Code Playgroud)

在休眠:

createSQLQuery("select * from COR_RADICADO_OFICIO where REQUIERE_RESPUESTA = 399 " +
"and concat(concat(num_radicado , '_'),  ano_radicado) not  in "+ 
"(select concat(concat(num_radicado , '_), ano_radicado) from COR_RESPUESTA_OFICIO);" );
Run Code Online (Sandbox Code Playgroud)

如果我直接在oracle上执行此查询,它工作正常,但hibernate抛出

java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
Run Code Online (Sandbox Code Playgroud)

尝试用'||'替换'concat'功能 并得到了同样的错误.

任何想法如何解决这个问题?(除了创建视图).

mer*_*ica 7

尝试删除分号可能吗?你得到的错误并没有说无效的SQL,它说的是完全不同的无效字符.