2017-06-23 1 views

Répondre

1

Si vous ne courez pas un cluster, utilisez cette solution (machines à sous-munitions n'allouent pas nécessairement ids strictement séquentielle, mais les blocs de cache de ids st une fois de Merci à Olaf Kock pour la pointe.!):

Connectez-vous à votre base de données (en utilisant MySQL Workbench par exemple).

Exécutez la requête SQL suivante:

SELECT * FROM JournalArticle order by convert(`articleId`, decimal) desc; 

Cet exemple est pour le contenu Web. Pour les autres types de données, remplacez JournalArticle et articleId selon le cas. Par exemple pour une mise en page écrire Layout et plid. Vérifiez le schéma pour d'autres types.

Explication: Les identificateurs d'élément sont des entiers incrémentiels (au moins dans Liferay 7, sachez que cela pourrait changer dans le futur). Cette fonctionnalité est fournie par CounterService (CounterService.increment(entityClazz)). En dépit d'être entier, ils sont stockés comme varchar, donc vous devez les convertir en decimal avant le tri.

+0

Ceci n'est vrai que si vous n'exécutez pas un cluster. Les machines à clusters n'allouent pas nécessairement les identifiants de manière strictement séquentielle, mais mettent en cache les blocs d'ID une seule fois. –

+0

@OlafKock: Merci, très instructif! J'ai ajouté vos informations au corps de la réponse. Je n'utilise pas un cluster sur mon projet actuel, mais si vous connaissez une solution pratique qui fonctionne également dans un cluster, une nouvelle réponse serait la bienvenue :-) –