IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Sortie de QxOrm 1.4.7 et QxEntityEditor 1.2.5 : l'ORM/ODM pour Qt améliore l'intégration avec MongoDB

Le , par QxOrm

234PARTAGES

6  0 
Bonjour,

La bibliothèque QxOrm 1.4.7 et l'application QxEntityEditor 1.2.5 viennent de sortir et proposent une meilleure intégration avec la base de données MongoDB ainsi qu'un support de l'environnement macOS Catalina 10.15.

Modifications apportées à la bibliothèque QxOrm 1.4.7 :
  • Corrige un problème avec la fonction qx::dao::fetch_by_id_with_relation() et MongoDB (l'identifiant récupéré était incorrect)
  • Corrige un problème avec la fonction qx::dao::fetch_all() lorsqu'une liste de colonnes personnalisées inclue l'identifiant
  • Corrige la sérialisation de l'identifiant JSON pour MongoDB avec les propriétés enregistrées en tant que Q_PROPERTY (Qt property meta system)
  • Corrige une erreur (segmentation fault) lorsque l'interface qx::IxPersistable est utilisée avec un héritage multiple (par exemple QObject + qx::IxPersistable), à cause de conversion static_cast vers void * dans le module QxFactory (corrige aussi pour le module QxService)
  • Supprime la récupération automatique des relations (lazy fetch) lorsqu'elles ne sont pas demandées dans la requête
  • Corrige un problème avec la sérialisation QJson et QDataStream lorsque la classe ne contient pas d'identifiant (donc classe non liée à une base de données) et joue le rôle de conteneur pour une autre classe (ces classes peuvent partager la même adresse pour les pointeurs)
  • Améliore la méthode qx::QxSqlQuery::freeText() qui permet d'ajouter du texte personnalisé aux requêtes SQL : ajout du support des placeholders (nouveau paramètre disponible : const QVariantList & values)
  • Améliore les performances en environnement multi-threads (mutex dans qx::IxSqlQueryBuilder)
  • Nouveau paramètre pour afficher plus de détails (temps d'exécution des requêtes) dans les logs des fonctions qx::dao (pour activer cette nouvelle fonctionnalité : qx::QxSqlDatabase::getSingleton()->setDisplayTimerDetails(true))
  • Améliore l'intégration avec MongoDB pour récupérer une liste d'éléments : construit l'instance C++ aussi rapidement que possible sans utiliser de données dans un buffer (amélioration des performances et usage limité de la mémoire)
  • Améliore l'intégration avec MongoDB : support dans la fonction qx::dao::delete_by_query() du moteur d’agrégation proposé par MongoDB
  • Améliore la classe qx::QxSqlQuery (ou son alias qx_query) : nouvelle méthode addJoinQuery() pour insérer des sous-requêtes SQL dans les sections LEFT OUT JOIN / INNER JOIN (plus de détails dans le manuel utilisateur)
  • Améliore la classe qx::QxSqlQuery : nouveau constructeur avec support des placeholders + nouvelles méthodes pour ajouter des sous-requêtes SQL (in_Select, notIn_Select, isEqualTo_Select, isNotEqualTo_Select)
  • Améliore la classe qx::QxCollection : qx::QxCollection est à présent un conteneur thread-safe (ce qui corrige par exemple le module QxModelView lorsqu'un modèle est chargé dans un thread différent de la vue)


Modifications apportées à l'application QxEntityEditor 1.2.5 :
  • Corrige un problème de police en environnement macOS Catalina 10.15
  • Ajout du paramètre en ligne de commande --font : défini la police par défaut utilisée par l'application avec la syntaxe <family>||<pointSize>||<weight>||<italic> (seul <family> est obligatoire), par exemple : Courier New||14
  • Ajout du paramètre en ligne de commande --style_sheet : défini le style par défaut de l'application (plus de détails sur le site de Qt), par exemple : QWidget { background-color: black }
  • Corrige un problème d'export des méta-données (property bag) : conserve le même ordre entre plusieurs exports C++ (ce qui simplifie la tache pour comparer 2 exports C++ avec des outils comme WinMerge ou équivalent)




Vous pouvez télécharger ces nouvelles versions sur le site internet de QxOrm et QxEntityEditor.
La bibliothèque QxOrm est également disponible sur GitHub.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de mouakev
Futur Membre du Club https://www.developpez.com
Le 26/01/2021 à 21:08
Bonjour,

Y aurait-il un tuto pour installer QxOrm sur ubuntu?

Merci
0  0 
Avatar de QxOrm
Expert confirmé https://www.developpez.com
Le 27/01/2021 à 9:20


Non pas de tuto pas à pas pour Ubuntu, le seul tuto dispo détaillé est pour Windows (un peu ancien mais je pense toujours valide).
Et il y a la section installation dans le manuel utilisateur.

Mais le principe reste le même :
1- installer les outils de dév et compilateur (GCC, CLang).
2- installer Qt : attention si tu installes la dernière version Qt6 sortie il y a 1 mois, alors il faut récupérer le dernier commit de QxOrm sur GitHub (la version QxOrm 1.4.8 qui supportera Qt6 n'étant pas encore officiellement sortie).
3- tu télécharges QxOrm et tu dézippes où tu veux.
4- en ligne de commande : tu vas dans le dossier où tu as dézippé QxOrm, puis tu lances les commandes :
Code : Sélectionner tout
1
2
3
qmake
make debug
make release
5- tu vas dans le sous-dossier lib du package QxOrm et tu devrais avoir : QxOrm.so (version release) et QxOrmd.so (version debug).
6- tu vas dans les sous-dossiers test/XXXX du package QxOrm pour compiler et exécuter les projets d'exemple ==> si par exemple le projet test/qxBlog s'exécute en mode debug sans déclencher aucun ASSERT, alors ton environnement de dév est bien installé et tu peux commencer à utiliser QxOrm dans tes projets.
7- suivant la base de données que tu souhaites utiliser, il faudra peut-être compiler le plugin de Qt correspondant.
8- tu peux installer l'application QxEntityEditor si tu souhaites générer tes classes C++ persistantes automatiquement ou importer un schéma de base de données existant.
0  0