Autor |
Mensagem |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 28/07/2008 15:13:44
|
andre
Equipe
Membro desde: 26/11/2007 13:44:01
Mensagens: 27
Offline
|
Pessoal, boa tarde,
Minha aplicação possui uma classe PessoaFisica, que não é uma entidade, mas está anotado com @Bean. Nesta classe possuo outras entidades, como Uf e Sexo.
Ao dar o submit no formulário, o objeto PessoaFisica está vindo só com os id's das entidades. Gostaria que viesse também o descriptionProperty da combo, só pra gerar o relatório, tem jeito?
É pq são muitas entidades, e pra ficar dando load em todas, fica inviável. Grato.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 06/08/2008 10:36:27
|
rodrigo.freitas
Equipe
Membro desde: 17/04/2007 16:43:33
Mensagens: 37
Localização: Belo Horizonte - MG
Offline
|
André,
acho que desse jeito que você quer fazer não tem jeito não...
Mas essas tabelas são estáticas no BD?
Se for estáticas você pode colocar constantes que representam esses registros estáticos...
Code:
public static Sexo MASCULINO = new Sexo(1,"Masculino");
public Sexo(){}
public Sexo(Integer sexo_id, String descricao){
this.sexo_id = sexo_id;
this.descricao = descricao;
}
Aí você sobrescreve o equals e compara Id que chegar no Bean PessoaFísica...
Code:
@Override
public boolean equals(Object obj) {
if (obj instanceof Sexo) {
Sexo sexo= (Sexo) obj;
return sexo.getSexo_id().equals(this.getSexo_id());
}
return super.equals(obj);
}
Deu pra ajudar em algo?
Qualquer dúvida é só falar...
|
Rodrigo Duarte de Freitas
Desenvolvedor de Sistemas
LinkCom - Soluçoes em T.I
Belo Horizonte - MG
rodrigo.freitas@linkcom.com.br - www.linkcom.com.br
Telefone/Fax: (31) 3239-4000 |
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 13/08/2008 09:44:47
|
andre
Equipe
Membro desde: 26/11/2007 13:44:01
Mensagens: 27
Offline
|
Elas são estáticas sim, meu problema é que eu tento automatizar tudo kkkkkk.
Eu configurei o método getDescricao pra carregar o bean no banco se o id não for null. Assim, quando o relatório chamar a descricao, o bean é recarregado e a descricao é retornada.
Valew pela dica.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 14/08/2008 09:49:24
|
pedro.goncalves
Equipe
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline
|
Cara.. Você pode utizar de enum's também.. Fica mais automático.
Te interessa??
Olhe:
Exemplo Enum
Code:
package br.com.ecom.bean.enumeration;
public enum CategoriaCliente {
ATACADO ("Atacado"),
VAREJO ("Varejo"),
ESPECIAL ("Especial");
private String descricao;
CategoriaCliente(String descricao){
this.descricao = descricao;
}
@Override
public String toString() {
return descricao;
}
public String getName(){
return name();
}
}
Code:
package br.com.ecom.bean;
import javax.persistence.Entity;
import javax.persistence.Transient;
import br.com.ecom.bean.enumeration.CategoriaCliente;
import br.com.ecom.bean.enumeration.UF;
import br.com.linkcom.neo.bean.annotation.DisplayName;
import br.com.linkcom.neo.types.Cep;
import br.com.linkcom.neo.types.Cnpj;
import br.com.linkcom.neo.types.Cpf;
import br.com.linkcom.neo.validation.annotation.MaxLength;
import br.com.linkcom.neo.validation.annotation.MinLength;
import br.com.linkcom.neo.validation.annotation.Required;
@Entity
public class Cliente extends Usuario {
...
protected CategoriaCliente categoriaCliente;
...
@Required
@DisplayName("Categoria")
public CategoriaCliente getCategoriaCliente() {
return categoriaCliente;
}
...
public void setCategoriaCliente(CategoriaCliente categoriacliente) {
this.categoriaCliente = categoriacliente;
}
...
}
Na sua tela, basta usar: <t:property name="categoriaCliente"/>
|
Pedro Gonçalves
http://pedrogoncalves.com.br
 |
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 22/08/2008 15:24:26
|
andre
Equipe
Membro desde: 26/11/2007 13:44:01
Mensagens: 27
Offline
|
Pedro, tentei fazer com enums mas não consegui, pq algumas chaves tem o valor numerico, e java não aceita identificador numerico como nome das variáveis. Tbm tentei trocar de posição com a descrição mas tbm não deu certo pq algumas descrições iniciam com valores numericos.
Tem alguma outra forma de criar essas combos constantes?
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 22/08/2008 20:35:21
|
pedro.goncalves
Equipe
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline
|
Eu não entendi essa de ter nome como numérico..
teria como explicar melhor?
|
Pedro Gonçalves
http://pedrogoncalves.com.br
 |
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 23/08/2008 13:59:36
|
andre
Equipe
Membro desde: 26/11/2007 13:44:01
Mensagens: 27
Offline
|
Por exemplo, tentei fazer o enum GrauIntrucao
Code:
public enum GrauIntrucao {
001 ("1 GRAU INCOMPLETO"),
002 ("1 GRAU COMPLETO"),
003 ("2 GRAU INCOMPLETO");
private String descricao;
GrauIntrucao(String descricao){
this.descricao = descricao;
}
@Override
public String toString() {
return descricao;
}
public String getName(){
return name();
}
}
No meu banco, as chaves são os valores 001, 002, 003. Neste caso, o java não aceita esses valores como um identificador. Também não consigo colocar a descrição como identificador, pq elas iniciam com numero. Sinuca de bico =)
É a primeira vez que estou usando enums tbm. Pode ser que tenha uma outra forma de contornar este problema com enums, mas eu não sei.
Grato.
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 24/08/2008 13:03:16
|
pedro.goncalves
Equipe
Membro desde: 17/04/2007 16:12:20
Mensagens: 539
Localização: Belo Horizonte - MG
Offline
|
Ai o problema complicou..
pois a idéia de constante é ter um nome para identificar um número (Similares). Quando utiliza ENUM, o que é salvo no banco de dados é o valor ordinal do enum, ou seja a ordem que está declarado. Acredito que para o que você precisa, o ideal e alterar o seu banco.
E mudasse as constates para algo do tipo: PRIMEIRO_GRAU("lalala")
entendeu?
|
Pedro Gonçalves
http://pedrogoncalves.com.br
 |
|
 |
|