Lista de relacionamento desordenada - quero ordenada!
23/12/2009 00:00
0
Quando eu carrego uma lista de objetos, o relacionamento desses objetos ficam desordenados, e eu gostaria que esses relacionamentos fossem ordenados.

Ex:


def obj = Objeto.findAll()
println obj.colecao // coleção fica desordenada!! :(


Por exemplo, imprime [0,1,2], mas em outra ocasião imprime [2,1,0] e assim vai mudando.

Gostaria de ordenar a coleção dos meus relacionamentos por ID, e em alguns casos pode ser ordenada por algum outro campo.

Até na classe do relacionamento declarei dentro da closure mapping o sort "id" mas acho que não eh desse jeito.

Alguma luz sem que eu precise ordenar manualmente?
Tags: Grails


0
Default Sort Order
<!-- m --><a class="postlink" href="http://grails.org/doc/1.1.1/guide/5.%20Object%20Relational%20Mapping%20(GORM">http://grails.org/doc/1.1.1/guide/5.%20 ... ng%20(GORM</a><!-- m -->).html#5.5.3%20Default%20Sort%20Order


0
Como eu disse, foi oq eu tentei fazer mas não deu, na verdade não sei direito como faz

Por exemplo na minha classe Processo eu tenho:


static hasMany = [situacoes &#58; Situacao]

static mapping = {
situacoes sort&#58;'situacoes.id'
}


Ali onde tem situacoes.id eu acho que só vale para atributos da classe Processo, não sei se ele permite usar algum atributo do objeto Situacao. Eu fiz dessa maneira e não deu =(

Eu também tentei dentro da classe Situacao colocar no mapping o sort &quot;id&quot; como eu disse no primeiro post, e não deu.
23/12/2009 00:00


0
fpdella

já me deparei com isso também,
a forma que funcionou para mim foi colocar o campo da tabela mesmo, e não o alias do domain.

por exemplo:

Se sua classe Situacao tem um campo chamado descricao definido assim:

Class Situacao {
String descricao
...
static mapping = {
descricao column&#58;'desc'
...
}
}


tenta colocar no
static hasMany = [situacoes &#58; Situacao]

static mapping = {
situacoes sort&#58;'desc'
}


ao inves de
static hasMany = [situacoes &#58; Situacao]

static mapping = {
situacoes sort&#58;'descricao'
}


funcionou comigo.
28/12/2009 00:00


0
Deu certo, estava fazendo errado!!

eu tinha declarado na classe Processo:


situacoes sort&#58;'id' // na propriedade sort tentei de vários modos e nunca funcionava

situacoes cascade&#58;'all'


eu repetia a coleção situacoes para o sort e o cascade, dai resolvi deixar tudo numa declaração e funcionou:


situacoes cascade&#58;'all', sort&#58;'id'


OBS: essa declaração do cascade all funciona no banco de dados MySQL utilizando a engine InnoDB? Não deveria estar declarado nas constraints da SQL geradas pelo Grails ou só funciona no nível da aplicação? Aqui não aparece nada nas SQL referente ao cascade all, mas me parece que funciona como se tivesse.
28/12/2009 00:00



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