[RESOLVIDO]Campo @Enumerated

3 respostas
C

Olá Pessoal,

Estou com o seguinte problema :

Tenho na minha entidade um campo Enumerated definido da seguinte forma :

@Enumerated(EnumType.STRING)
    @Column(nullable=false, length=20)
    private TipoContaContabil tipo = TipoContaContabil.Sintética;

Tenho uma classe que define o tipo, conforme abaixo :

package br.com.entidades.tipos;
public enum TipoContaContabil {
    Analítica, Sintética;
}

E estou tentando carregar a lista com somente as contas ‘Analítica’, conforme abaixo, mas esta dando erro no tipo de dados. Alguém sabe como devo fazer o filtro ?

public List<PlanoContas> getAllPlanoContas(int idEmpresa) {
        return getList(PlanoContas.class,""
                + "select planocontas "
                + "from PlanoContas planocontas, Empresa emp "
                + "where planocontas.empresa = emp and emp.id = ?1 and planocontas.tipo = 'Analítica' "
                + "order by planocontas.conta",idEmpresa);
    }

Obrigado,

Cristiano Assis

3 Respostas

G

Já tentou assim:

entityManager.createQuery("... planocontas.tipo = ?2 ..." ).setParameter(2, TipoContaContabil.Analítica);
Hebert_Coelho

geraldo.vec:
Já tentou assim:

entityManager.createQuery("... planocontas.tipo = ?2 ..." ).setParameter(2, TipoContaContabil.Analítica);

2
Ia falar exatamente o mesmo.

Ao fazer "where planocontas.empresa = emp and emp.id = ?1 and planocontas.tipo = ‘Analítica’ " você está passando Analítica como String e não como enum.

C

Desculpa a demora nos testes. Funcionou!!!

Muito obrigado!!!

Criado 5 de março de 2012
Ultima resposta 19 de mar. de 2012
Respostas 3
Participantes 3