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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

QxOrm Discussion :

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


Sujet :

QxOrm

  1. #1
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut Sortie de QxOrm 1.4.7 et QxEntityEditor 1.2.5 : l'ORM/ODM pour Qt améliore l'intégration avec MongoDB
    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.
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2015
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

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

    Merci

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut


    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 - Visualiser dans une fenêtre à part
    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.
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/06/2017, 22h05
  2. Réponses: 2
    Dernier message: 22/12/2016, 09h45
  3. Réponses: 0
    Dernier message: 21/01/2015, 21h49
  4. Réponses: 0
    Dernier message: 13/08/2014, 22h31
  5. Réponses: 0
    Dernier message: 19/06/2014, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo