La bibliothèque QxOrm 1.4.1 vient de sortir : l'ORM pour Qt dispose d'une nouvelle documentation (en remplacement de l'ancienne FAQ), et la dépendance au module boost serialization devient optionnelle (et non requise par défaut).
Voici les nouveautés apportées par cette nouvelle version QxOrm 1.4.1.
REMARQUE IMPORTANTE AU SUJET DE CETTE VERSION : il est fortement recommandé de lire le fichier de configuration QxOrm.pri de cette nouvelle version (les options de compilation ont changé par rapport aux versions précédentes).
Par défaut, la bibliothèque QxOrm est maintenant beaucoup plus légère : QxOrm dépend uniquement de QtCore et QtSql (la dépendance à boost serialization est maintenant optionnelle et non requise par défaut). Le moteur de sérialisation par défaut est basé sur la classe QDataStream de Qt (mais il est toujours possible d'activer boost serialization en définissant l'option de compilation _QX_ENABLE_BOOST_SERIALIZATION dans le fichier de configuration QxOrm.pri).
Avec les options par défaut :
- QxOrm 1.4.1 est beaucoup plus simple à installer, car il n'est pas nécessaire de lier la dépendance externe boost serialization (uniquement les binaires Qt) ;
- le binaire de QxOrm 1.4.1 est 3 fois plus léger comparé à la version précédente 1.3.2 ;
- les binaires qui dépendent de QxOrm sont 25 % plus petits ;
- si dans vos projets actuels basés sur QxOrm, vous n'utilisez pas les fonctions de sérialisation, alors vous pouvez définir ou non l'option de compilation _QX_ENABLE_BOOST_SERIALIZATION sans changer une seule ligne de code.
Voici tous les autres changements de la version QxOrm 1.4.1 :
- amélioration du moteur de relations : possibilité de sélectionner les colonnes à récupérer en utilisant la syntaxe suivante : my_relation { col_1, col_2, etc. } ;
- optimisation du module QxTraits pour réduire les temps de compilation et la taille des binaires générés ;
- nouvelle option de compilation _QX_ENABLE_BOOST_SERIALIZATION pour activer la dépendance à boost serialization (lire le fichier de configuration QxOrm.pri pour plus de détails) ;
- nouvelle option de compilation _QX_ENABLE_QT_NETWORK pour activer le module QxService (transfert de la couche persistante sur le réseau) : lire le fichier de configuration QxOrm.pri pour plus de détails ;
- nouvelle option de compilation _QX_NO_RTTI permettant de compiler QxOrm et les projets dépendants sans les informations de types C++ RTTI ;
- support du moteur de sérialisation de Qt basé sur la classe QDataStream (utilisé par défaut si l'option de compilation _QX_ENABLE_BOOST_SERIALIZATION n'est pas définie) ;
- amélioration de la classe qx_query (requêtes SQL) : nouvelle méthode (nommée customOperator()) qui donne la possibilité d'utiliser un opérateur personnalisé (par exemple l'opérateur <@ pour le type ltree de PostgreSQL) ;
- corrige un problème au chargement d'un programme à cause des initialisations statiques des singletons (static initialization order fiasco) ;
- nouvel espace de noms qx::dao::throwable avec les mêmes fonctions que dans le namespace qx::dao : les fonctions déclenchent une exception de type qx::dao::sql_error au lieu de retourner une instance de type QSqlError ;
- ajout de la macro qAssertMsg() pour donner une description plus précise au déclenchement d'une assertion ;
- ajout de tous les fichiers *.inl (implémentation des templates) dans le fichier projet QxOrm.pro : QtCreator peut à présent indexer ces fichiers *.inl dans son arborescence ;
- les classes préfixées par QxStringCvt ont été renommées en QxConvert : si vous persistez des types personnalisés, il faut penser à renommer QxStringCvt_FromVariant, QxStringCvt_ToVariant en QxConvert_FromVariant, QxConvert_ToVariant ;
- vérifie le paramétrage de boost dans le fichier de configuration QxOrm.pri : si paramétrage incorrect, affichage d'un message d'erreur explicite à l'appel de qmake (avant de générer les make files).
Téléchargez les dernières versions de la bibliothèque QxOrm et l'application QxEntityEditor