Parameter value [I] did not match expected type [org.desif.enuns.ModuloEntregaDeclaracaoEnum (n/a)]
Estou entendendo que ele disse que o parametro I não existe no Enum ModuloEntregaDeclaracaoEnum
Mas minha classe enum e o I está la… Olhei no banco de dados e só existe o valor I no campo que referencia este enum.
packageorg.desif.enuns;publicenumModuloEntregaDeclaracaoEnum{D("Demonstrativo Contábil"),A("Apuração Mensal do ISSQN"),I("Informações Comuns aos Municípios");privateStringdescricao;privateModuloEntregaDeclaracaoEnum(Stringdescricao){this.descricao=descricao;}publicStringgetDescricao(){returndescricao;}publicvoidsetDescricao(Stringdescricao){this.descricao=descricao;}@OverridepublicStringtoString(){returndescricao;}}
É isso que quero entender, quais os valores estão na tabela.
Nulo não seria um problema.
G
guilhermebhte
OK
O mapeamento também está ok.
L
Luis_Augusto_Santos
Só uma dúvida: o trabalho que se tem para criar um enum assim, como o que fez e o de criar um assim
public enum ModuloEntregaDeclaracaoEnum {
DEMONSTRATIVO_CONTABIL("Demonstrativo Contábil"),APURACAO_MENSAL_ISSQN("Apuração Mensal do ISSQN"),INFORMACOES_COMUNS_MUNICIPIOS("Informações Comuns aos Municípios"),NENHUM("");//Ou NENHUM(null)
É o mesmo, não?
E, no banco de dados, ficaria um desses valores:
DEMONSTRATIVO_CONTABIL
APURACAO_MENSAL_ISSQN
INFORMACOES_COMUNS_MUNICIPIOS
NENHUM
G
guilhermebhte
Fiz as alterações e até achei melhor, mas o erro continua
packageorg.desif.enuns;publicenumModuloEntregaDeclaracaoEnum{DEMONSTRATIVO_CONTABIL("Demonstrativo Contábil"),APURACAO_MENSAL_ISSQN("Apuração Mensal do ISSQN"),INFORMACOES_COMUNS_MUNICIPIOS("Informações Comuns aos Municípios"),NENHUM("");privateStringdescricao;privateModuloEntregaDeclaracaoEnum(Stringdescricao){this.descricao=descricao;}publicStringgetDescricao(){returndescricao;}publicvoidsetDescricao(Stringdescricao){this.descricao=descricao;}@OverridepublicStringtoString(){returndescricao;}}
D
DarkElf
Quando esse erro ocorre?
G
guilhermebhte
Nesta consulta
StringBuilderhqlSelectEntidade=newStringBuilder("new IdentificacaoEntity(i.id, i.cnpj, i.nome, i.mesAnoInicio, ");hqlSelectEntidade.append("\n i.mesAnoFim, i.tipo, i.dataHora, i.protocolo, i.status) ");hqlSelectEntidade.append("\n FROM IdentificacaoEntity i ");hqlSelectEntidade.append("\n WHERE i.status NOT IN ('"+StatusIdentificacaoEnum.N.name()+"', '"+StatusIdentificacaoEnum.D.name()+"') ");hqlSelectEntidade.append("\n AND i.declaracao = :declaracao");finalStringqueryEntidade="SELECT "+hqlSelectEntidade;QueryquerySelectEntidade=em.createQuery(queryEntidade);querySelectEntidade.setParameter("declaracao",declaracao.name());Set<IdentificacaoEntity>resultSetEntidade=newHashSet(querySelectEntidade.getResultList());returnnewArrayList(resultSetEntidade);
P
pmlm
O teu atributo é enum, não vai funcionar com uma string no NOT IN
G
Solucao aceita
guilhermebhte
Alterei toda a consulta e funcionou
StringBuilderhqlSelectEntidade=newStringBuilder("new IdentificacaoEntity(i.id, i.cnpj, i.nome, i.mesAnoInicio, ");hqlSelectEntidade.append("\n i.mesAnoFim, i.tipo, i.dataHora, i.protocolo, i.status) ");hqlSelectEntidade.append("\n FROM IdentificacaoEntity i ");hqlSelectEntidade.append("\n WHERE i.status <> :naoProcessada ");hqlSelectEntidade.append("\n AND i.status <> :desativada ");hqlSelectEntidade.append("\n AND i.declaracao = :declaracao ");finalStringqueryEntidade="SELECT "+hqlSelectEntidade;QueryquerySelectEntidade=em.createQuery(queryEntidade);querySelectEntidade.setParameter("declaracao",declaracao);querySelectEntidade.setParameter("naoProcessada",StatusIdentificacaoEnum.NAO_PROCESSADA);querySelectEntidade.setParameter("desativada",StatusIdentificacaoEnum.DESATIVADA);