monike
Setembro 30, 2009, 10:24am
#1
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
Talvez esse monte de 0 sejam incluídos pelo próprio banco.
monike
Setembro 30, 2009, 10:41am
#3
Mas eu não tenho como recuperar o código do jeito que ele está no banco???
Creio que sim, mas não sei como fazer.
Qual é o tipo do campo no banco?
monike
Setembro 30, 2009, 10:54am
#5
é um código,mas está como char.
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
Setembro 30, 2009, 11:08am
#7
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.
Mas na consulta você passa 0000000176 ou apenas 176?
monike
Setembro 30, 2009, 11:36am
#9
eu fiz uma cambi,mas nao é o certo.
query.setString(“sigla”, “000000”+sigla); 000000176 ai ele acha.
O vulgo POG (Programação Orientada à Gato).
ctdaa
Setembro 30, 2009, 12:45pm
#11
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");
}
}
}