Ajuda com Hibernate (Resolvido)

6 respostas
G

Possuo uma tabela Produtos assim definida:

codigo Nome codigoDetalhado Status
100 xxxxxxxxxxxxxxxxx 100302202 A
101 zzzzzzzzzzzzzzzzz 100302221 I
102 vvvvvvvvvvvvvvvvv 200302223 A
103 mmmmmmmmmmmmmmmmm 200302244 A
104 qqqqqqqqqqqqqqqqq 200402202 I
105 rrrrrrrrrrrrrrrrr 300502202 A

Tenho utilizado o codigo Hibernate abaixo para filtrar meus dados

public List<Produtos> listarProd(){
  Criteria c = session.createCriteria(Produtos.class);
  c.add(Restrictions.eq("Status", "A"));
  c.addOrder(Order.asc("Nome"));
  return c.list();

Até o momento isso tem me atendido prontamente, porém, agora necessito
recperar os produtos, cujo se iniciem por 1,2, ou 3,
conforme escolha do usuário (primeira posição a esquerda do campo).
Alguem poderia me dar uma luz de como definir isso no Hibernate??? Alias
esse é numérico de 9 posições.

Aplicação é Flex com Blazeds + Hibernate + Java

Agradeço de antemão a ajuda.[b]

Galvez

6 Respostas

C

Bom dia

Para fazer esse tipo de pesquisa use o método ilike, de uma olhada abaixo.

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querycriteria.html

Falou.

romarcio

Não utilize titulo de tópico em caixa alta, parece que vc está gritando com alguém.

Vc pode passar por parametro esse codigoDetalhado, e dai utiliza-lo na consulta

public List&lt;Produtos&gt; listarProd(int cod){ 
Criteria c = session.createCriteria(Produtos.class); 
c.add(Restrictions.eq("Status", "A")); 
c.add(Restrictions.eq("codigoDetalhado", cod));
c.addOrder(Order.asc("Nome")); 
return c.list();
G

Olá Caio, agradeço a atenção, mas uma dúvida.

meu codigodetalhado tem 9 posicoes numeéricas, por ex:

codigodetalhado
100302202
100302203
200302255
300302233

necessito de todos os registro que tenham a primeira posição a esquerda igual a um parametro selecionado pelo usuário.

como faço para que ele pesquise somente essa primeira posição na coluna? Eu entendo que teria que informar algo
como = substr(codigodelalhado,1,1) ou alguma coisa parecida.

No like como eu tranformo esse campo numerico em String na hora de montar o critéria?

.add( Restrictions.like(“codigodelalhado”, parametroinformado ) )

ViniGodoy

Além disso, evite palavras como “URGENTE”, “AJUDA”, “HEEELP”, ou derivadas. O fórum não é local para urgências.

P

Se seu código detalhado é uma String, use ilike

Se o código é um inteiro e vc quer os que comecem com 1, use between 100000000 e 199999999

Acho que isso resolve seu problema

G

Agradeço a atenção dos colegas e principalmente do ViniGodoy pela aula de
como utilizar o forum.

Galvez

Criado 4 de outubro de 2010
Ultima resposta 4 de out. de 2010
Respostas 6
Participantes 5