juanmbellini/PowerUp

Remove why linked hash set review from Game class

Closed this issue · 6 comments

.collect(Collectors.toCollection(LinkedHashSet::new)); // TODO: why linked hash set?

Is there any reason to use a LinkedHashSet instead of any Set?
From the outside, the consumer of the method just gets a Set, so it won't be able to use the sorting capabilities of the LinkedHashSet.

Si no mal recuerdo era porque quería preservar el orden de inserción. Esto es porque el primer URL es la cover picture y se trata de manera distinta. No sé si sigue siendo así.

Mmmm pero creo q la cover se asigna por otro lado

Vi el código y parece que va por aparte eso (tenemos una tabla para cover pictures), así que por eso no es. Igual sigue valiendo que queremos mantener el orden. La idea no es que el usuario sepa que es un LinkedHashSet, nomás que si agregó una foto al final, que la foto va a estar al final del set

Claro, pero el tema es que hay que ver cómo Hibernate carga a memoria los picturesIds.
Cada vez que se carga un juego, hibernate levanta de la db los ids estos y los mete en pictureIds, y dsp cuando se llama a getPictureIds, ahí se hace lo del LinkedHashSet, pero en base a como lo cargo Hibernate.

Tenés toda la razón, pero me parece que no ganamos nada cambiando algo que ya funciona. Siempre se hizo así y por ahora anda todo bien así que dejémoslo. Conste igual que si realmente nos importara el orden habría que ver lo que vos dijiste (y por ejemplo hacer que Hibernate haga ORDER BY id ASC o algo así).
Cierro el issue porque creo que se respondió la pregunta.

Dale. Lo reabro para no olvidarme de sacar TODO