アプリケーションでejbqlを実行しようとしていますが、次のエラーで失敗します:java.lang.IllegalStateException:クエリのselect句が無効です。
これはクエリです:
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%'
)
私のアプリケーションでは、これに似た他のいくつかのクエリがあり、完全に機能します。データベースでこのクエリを手動で実行すると、うまく機能します。SQLServer2005を使用しています。
ありがとう