Parametros posicionais JPA, colunas e tabela
Bom dia a todos,
É possível passa a tabela e a coluna como parâmetros em consultas, conforme o exemplo abaixo
Assiti a vídeo aula (construindo aplicação de notas fiscais usando struts2), onde o autor usava este código,
tentei usa-lo e não deu certo, pesquise na net e me informaram não ser possível passar a coluna e a tabela como parametros.
Mas no exemplo do autor do video funcionou e ai?
select max(cn.?2) from ?1 cn
Alex Braga
Curtidas 0
Respostas
Davi Costa
17/09/2010
Cara se vc tiver usando JPA(Hibernate),
pesquisa pelas funcionalidades do Criteria,
lá tem uma restrição que é o Restrictions.in
que recebi sim uma lista como parâmetro.
Não é difícil de usar não:
Criteria c = session.createCriteria(SuaClasse.class);
c.add(Restrictions.in("suaColuna", new ArrayList<ClassePassadaPorParametro>));
Espero ter ajudado
Att Davi
pesquisa pelas funcionalidades do Criteria,
lá tem uma restrição que é o Restrictions.in
que recebi sim uma lista como parâmetro.
Não é difícil de usar não:
Criteria c = session.createCriteria(SuaClasse.class);
c.add(Restrictions.in("suaColuna", new ArrayList<ClassePassadaPorParametro>));
Espero ter ajudado
Att Davi
GOSTEI 0
Alex Braga
17/09/2010
Valeu Davi,
Mas estou usando JPA,
O que me entriga é que na vídeo aula que eu assisti o autor : Diego Souza, faz da maneira que eu descrevi, e funfa. Na ocasião ele faz um método criador de queries.
Será que esta caracteristicas é referente a descrição do JPA 1 e foi retirada do JPA 2 por motivo de segurança.
GOSTEI 0
Davi Costa
17/09/2010
Blza cara,
ele sempre costuma dar uma força por aqui também.
Espera que logo ele te responde.
E no mais se tiver usando JPA2.0 ele também
cria os Criterias dele. Possivelmente ele deve ter algo parecido com que mostrei antes do hibernate.
E só a nível de conhecimento nada impede de vc usar o hibernate não, se já não tiver é só adicionar as libs.
E não precisa configurar nada em xml. Daí usa a Session do Hibernate.
Att Davi
ele sempre costuma dar uma força por aqui também.
Espera que logo ele te responde.
E no mais se tiver usando JPA2.0 ele também
cria os Criterias dele. Possivelmente ele deve ter algo parecido com que mostrei antes do hibernate.
E só a nível de conhecimento nada impede de vc usar o hibernate não, se já não tiver é só adicionar as libs.
E não precisa configurar nada em xml. Daí usa a Session do Hibernate.
Att Davi
GOSTEI 0
Dyego Carmo
17/09/2010
Opa , conseguiu resolver ?
GOSTEI 0
Alex Braga
17/09/2010
Blz, Diego.
Bom primeiramente queria te parabenizar pelo excelente curso, muito bom mesmo.
Quanto aos parametros, eu resolvi usando uma forma bem feia (abaixo), para dar continuidade ao Curso
Como pode ver, usei Strings no lugar dos parâmetros, o que não é recomendável por questões de segurança.
Mas a dúvida quanto a passar nome de tabelas e colunas com parâmetros em JPA ainda permanece, conforme vc usou no seu curso aula 5 (código a seguir), vi e revi os vídeos varias vezes, pesquisei na net (falam não ser possível) em livros não vi nada relacionado ao assunto, apenas passam parâmetros como valores para comparar ou realizar uma lógica.
Bom aguardo retorno.
Valeu.
select max(cn."+column+") from "+className+" cn "
select max(cn.?1) from ?2 cn
GOSTEI 0
Dyego Carmo
17/09/2010
Bom , a String é insegura caso venha digita da WEB... se for dentor do seu problema não tem problema...
Quanto ao JPA , voce está usando o 1.0 ou 2.0 ?
Quanto ao JPA , voce está usando o 1.0 ou 2.0 ?
GOSTEI 0
Alex Braga
17/09/2010
Estou usando JPA 1.0
GOSTEI 0
Dyego Carmo
17/09/2010
Deu certo agora ?
GOSTEI 0