我正在尝试在我的应用程序中运行 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。
谢谢