Criteria com ENUM
09/05/2013 18:12
0
Boa tarde pessoal.

Estou enfrentando um probleminha, que não consigo resolver, pode estar até cansado já, mas preciso de uma ajuda de vocês;

Tenho o seguinte ENUM

TERMO("Termo"),CONTRATO_COMERCIAL("Contrato comercial")

final String value

CategoriaContrato(String value){
this.value = value
}

@Override
public String toString() {
value
}

String getKey(){
name()
}

static list(){
[ TERMO, CONTRATO_COMERCIAL ]
}


Que é referenciado desta forma na minha Domain:


class ClasseInstrumento {
(...)
CategoriaContrato categoriaContrato
Integer emUso

static hasMany = [...]

static belongsTo = [...]

static mapping = {...}

static constraints = {
...
categoriaContrato(blank: false, inList: CategoriaContrato.list())
transactional: true
}
}


E quero executar esta Criteria:

def result = ci.get{
idSubjacente{
idEq(subjacente.id)
}
and{
eq("categoriaContrato", CategoriaContrato.values().find{ it.value == 'Termo' })
eq("emUso", 1)
}
}


Mas ela me retorna um erro que é o seguinte:

Message: No enum constant br.com.meuprojeto.util.enums.CategoriaContrato.Termo


Alguém pode me ajudar?

Agradeço as respostas.
Tags: domain, createCriteria, enum


0
Faz assim:

eq("categoriaContrato", CategoriaContrato.TERMO)

15/05/2013 00:06



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto