Lista de relacionamento desordenada - quero ordenada!
Postado em 23/12/2009 00:00
0
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
fpdella
Pontos: 1






0
0
23/12/2009 00:00
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

Wanderson Santos (Wans)
Pontos: 128



0
0
23/12/2009 00:00
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.

fpdella
Pontos: 1



0
0
28/12/2009 00:00
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.

erhorn
Pontos: 0



0
0
28/12/2009 00:00
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.

fpdella
Pontos: 1



 


Esqueceu sua senha?
 
Grails Brasil é mantido por itexto Desenvolvimento de Projetos Ltda.
Em caso de problemas, sinta-se livre para procurar Henrique Lobo Weissmann (Kico) por e-mail: kicolobo@itexto.net
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão (clique no logo à direita para maiores detalhes)