1

我正在尝试在我的应用程序中运行 ejbql,但它失败并出现以下错误:java.lang.IllegalStateException:查询的无效选择子句。

这是查询:

public void pesquisar()
{
    StringBuilder query = new StringBuilder();

    query.append("SELECT OBJECT(licenca) FROM TblLicencas licenca");
    query.append(" WHERE upper(licenca.tblLivros.titulo) like '%" + termoPesquisa.toUpperCase() + "%'");
    tblLicencasList.setEjbql(query.toString());

    tblLicencasList.refresh();
}

在控制台中,hibernate 生成的输出查询是这样的:

select
    top 26 tbllicenca0_.id_licenca as id1_8_,
    tbllicenca0_.data_geracao as data2_8_,
    tbllicenca0_.id_livraria as id3_8_,
    tbllicenca0_.id_livro as id4_8_,
    tbllicenca0_.id_status_licenca as id5_8_,
    tbllicenca0_.id_tipo_licenca as id6_8_ 
from
    DigitalDocumentsServerTeste.dbo.tbl_licencas tbllicenca0_,
    DigitalDocumentsServerTeste.dbo.tbl_livros tbllivros1_ 
where
    tbllicenca0_.id_livro=tbllivros1_.id_livro 
    and (
        upper(tbllivros1_.titulo) like '%ADV%'
    )

在我的应用程序中,我还有其他几个与此类似的查询可以完美运行。当我在数据库中手动执行此查询时,它运行良好。我正在使用 SQL Server 2005。

谢谢

4

0 回答 0