1

アプリケーションで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を使用しています。

ありがとう

4

0 に答える 0