Hibernate

10 respostas
monike

Bom dia Galera!
Gostaria de saber se este caso já aconteceu com algum de vcs.Estou usando hibernate.
Eu tenho um campo char no meu banco mysql CD_UNIDADE que se apresenta desta maneira 000000176 .Só que quando vou recuperar ele via annotation
ele se apresenta somente como 176 alguém sabe pq isso acontece e como posso resolver para trazer do banco corretamente?

@Parameter
private String sigla;

obrigada

10 Respostas

rubensdemelo

Talvez esse monte de 0 sejam incluídos pelo próprio banco.

monike

Mas eu não tenho como recuperar o código do jeito que ele está no banco???

rubensdemelo

Creio que sim, mas não sei como fazer.

Qual é o tipo do campo no banco?

monike

é um código,mas está como char.

rubensdemelo

Talvez seja por isso então, já que o campo tem que ter um tamanho fixo, na hora de inlcuir, o banco preenche com 0 à esquerda. Não tenho certeza se é assim com mysql, mas no oracle e db2 geralmente é assim.

Quando a consulta retorna, já vem com o código “176”?

monike

Eu confirmei com o ad ele me disse que o banco preenche assim mesmo.Mas quando eu recupero,vem 176 ai ele nao encontra o registro.

rubensdemelo

Mas na consulta você passa [telefone removido] ou apenas 176?

monike

eu fiz uma cambi,mas nao é o certo.
query.setString(“sigla”, “000000”+sigla); 000000176 ai ele acha.

rubensdemelo

O vulgo POG (Programação Orientada à Gato).

ctdaa

Não sou muito experiente nisto… mas não é o caso de usar um converter para devolver o valor no formato desejado?
Tipo assim:

public class CategoryConverter implements Converter {

    public Object getAsObject(FacesContext facesContext, UIComponent component, String string) {
        if (string == null || string.length() == 0) {
            return null;
        }
        Long id = new Long(string);
        CategoryJpaController controller = (CategoryJpaController) facesContext.getApplication().getVariableResolver().resolveVariable(facesContext, "categoryJpa");
        try {
            return controller.findCategory(id);
        } catch (PersistenceSessionException ex) {
            return null;
        } catch (Exception ex) {
            return null;
        }
    }

    public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
        if (object == null) {
            return null;
        }
        if (object instanceof Category) {
            Category o = (Category) object;
            return o.getId() == null ? "" : o.getId().toString();
        } else {
            throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: com.pet.model.Category");
        }
    }

}
Criado 30 de setembro de 2009
Ultima resposta 30 de set. de 2009
Respostas 10
Participantes 3