Como salvar campo Enum?

2 respostas
soninhamax

Dúvida: Tenho um cadastro de produto que puxa referencia de outros cadastro. Consigo carregar e gravar no banco essas referencias, porem o ultimo campo é um campo enumerado. Na hora de gravar no banco aparece, por exemplo, o seguinte valor:[Lmodel.EstacaoEnum;@8cdf50

public class ProdutoDAO extends DAO {  
      
        private static String TABELA = "Produto";  
      
        public int inserirProduto(Produto obj) {  
      
            System.out.println(obj.getCategoria().getcodigocat());  
            System.out.println(obj.getCor().getcodigocor());  
            System.out.println(obj.getevento().getcodigoevento());  
           System.out.println(obj.getTamanho().getcodigotamanho());  
           System.out.println(obj.getEstacao().values());  
           return executeSQL("INSERT INTO " + TABELA + " (codigo,descricao,idcategoria, idcor, idevento, idtamanho, idestacao) " + "VALUES('" +  
                   obj.getcodigoproduto() + "', '" +  
                   obj.getdescricaoproduto() + "', '" +  
                   obj.getCategoria().getcodigocat() + "','" +  
                   obj.getCor().getcodigocor() + "','" +  
                   obj.getevento().getcodigoevento() + "', '" +  
                   obj.getTamanho().getcodigotamanho() + "', '" +  
                   obj.getEstacao().values() + "' )");  
            
       }

O correto seria exibir verao ou primavera ou outono ou inverno.
Alguém sabe como resolver isso?

2 Respostas

seuparada

Soninha,

a chamada do método values() do seu Enum retorna uma coleção cujo toString() não está implementado.

Link para o método values() da classe EnumMap: http://java.sun.com/javase/6/docs/api/java/util/EnumMap.html#values()

[]'s
André Paschoal

A

Como segestao, tente fazer o seguinte:

public enum Estacao {

	VERAO("Verao"), OUTONO("Outono"), PRIMAVERA("Primavera"), INVERNO("Inverno");

	private String descricao;

	private Estacao(String descricao) {
		this.descricao = descricao;
	}

	public String getDescricao() {
		return descricao;
	}
	
}

No atributo do tipo enum do seu VO que estiver chegando, voce invoca o getDescricao() desta enum.

Abracos

Criado 2 de maio de 2010
Ultima resposta 2 de mai. de 2010
Respostas 2
Participantes 3