olpá boa tarde a todos,
bem estou com um problema na seguinte query:
StringBuffer sql = new StringBuffer();
sql.append(" select * from gestor.responsavel where gestor.superfind(nome) like gestor.superfind(’%?%’) order by nome ");
PreparedStatement pstmt = conn.prepareStatement(sql.toString());
pstmt.setString(1,filtro);//filtro é uma string que recebo no método e superfind é uma procedure criada no oracle
quando executo essa query eu recebo o erro : java.sql.SQLException: Invalid column index
porém quando faço:
StringBuffer sql = new StringBuffer();
sql.append(" select * from gestor.responsavel where gestor.superfind(nome) like gestor.superfind(’%"+filtro+"%’) order by nome ");
PreparedStatement pstmt = conn.prepareStatement(sql.toString());
dá tudo certo mas dessa forma ou ter problemas qdo pesquisarem Joana D’ Ark ou sei lá posso ter problemas com sql inject oque é muito preocupante. Alguém sabe alguma solução para este problema da primeira abordagem ou pq ele acontece?ou ainda,existe alguma maneira de utilizar procedures do banco com ejbql ,hql?
Agradeço a atenção.