pessoal, tenho o seguinte código::
public String montaQuery(Vector vetor){
String query = "select tit_01 from alx_tit where tit_01 like ";
String queryTemp = "";
int i;
for(i = 0;i < vetor.size(); i++){
int j = i;
if(j+1 < vetor.size()){
queryTemp = queryTemp + "'% " + vetor.get(i) + " %' or tit_01 like " + "'%" + vetor.get(i) + "' or tit_01 like " + "'" + vetor.get(i) + "%' or tit_01 like ";
}
else if(j+1 == vetor.size()){
queryTemp = queryTemp + "'% " + vetor.get(i) + " %' or tit_01 like " + "'%" + vetor.get(i) + "' or tit_01 like " + "'" + vetor.get(i) + "%'";
}
}
query = query + queryTemp;
return query;
}
ele recebe um vector e retorna uma String query, que contem o select que eu estou precisando fazer, até ai tudo bem.
o problema é, como posso fazer para rodar esse select no ojb?
Vector listaDeTermo; // vetor para receber a listaTermo da classe MotorPesquisa
String termoPesqAvancada = request.getParameter("text1"); // pega oque estiver no campo de pesquisa do pesquisacombinada.jsp
listaDeTermo = envia.processaTermo(termoPesqAvancada); // envia a var text1 para o processaTermo do MotorPesquisa
query = envia.montaQuery(listaDeTermo);
PersistenceBroker broker = null;
try {
broker = PersistenceBrokerFactory.defaultPersistenceBroker();
Criteria crit1 = new Criteria();
crit1.addSql(query);
Query q = QueryFactory.newQuery(br.com.alexandria.ojbalex.Biblioteca.class, crit1, true);
Collection someArticles = broker.getCollectionByQuery(q);
java.util.Iterator iter = someArticles.iterator();
while (iter.hasNext()) {
br.com.alexandria.ojbalex.Biblioteca biblioteca = (br.com.alexandria.ojbalex.Biblioteca)iter.next();
out.println(biblioteca.getCodigo() + " - " + biblioteca.getNome() + "<br>");
}
} catch (Throwable t) {
t.printStackTrace();
}
}
não sei se esse addSql(query) esta correto, estou uma lida na api do ojb e fala assim desse addSql:
será q é esse o meu problema?
no criteria eu devo usar oque para rodar essa minha query?
Obrigado.[/quote]