Skip to content
master
Go to file
Code

Latest commit

- Fix a MongoDB issue with qx::dao::fetch_by_id_with_relation() (wrong id fetched)
- Fix an issue with qx::dao::fetch_all when a custom list of columns with the primary key is used
- Fix identifier JSON serialization for MongoDB with properties registered as Q_PROPERTY (Qt property meta system)
- Fix a crash (seg fault) using qx::IxPersistable with multiple inheritance (for example QObject + qx::IxPersistable) due to some static_cast to void * in QxFactory module (fix also for QxService module and multiple inheritance)
- Remove automatic relationship lazy fetch when not requested in query
- Fix an issue with QJson and QDataStream serialization when class doesn't contain any identifier (so not a database class) and is a wrapper of another registered class (can have same address pointer as parent)
- Improve qx::QxSqlQuery::freeText() method to add custom text to build SQL query : support placeholders (add second parameter const QVariantList & values)
- Improve performance in a multi-threads environment (mutex in qx::IxSqlQueryBuilder)
- New setting to display more details (execution times) in qx::dao functions logs (to enable this new feature : qx::QxSqlDatabase::getSingleton()->setDisplayTimerDetails(true))
- Improve MongoDB integration to fetch a list of items : build C++ instances as soon as possible without putting data in a buffer (better performance + less memory usage)
- Improve MongoDB integration : support qx::dao::delete_by_query() function with MongoDB aggregation framework
- Improve qx::QxSqlQuery class (or its qx_query alias) : new addJoinQuery() method to insert SQL sub-queries inside LEFT OUT JOIN / INNER JOIN (more details in documentation here : https://www.qxorm.com/qxorm_en/manual.html#manual_3855)
- Improve qx::QxSqlQuery class : new constructors with placeholders support + new methods to embed SQL sub-queries (in_Select, notIn_Select, isEqualTo_Select, isNotEqualTo_Select)
- Improve qx::QxCollection class : qx::QxCollection is now a thread-safe container (fix for example QxModelView module when model is fetched in a different thread than the view)
66fe17c

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
doc
 
 
 
 
inl
 
 
lib
 
 
qt
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

QxOrm library - Official repository

QxOrm library is an Object Relational Mapping (ORM) and Object Document Mapper (ODM) database library for C++ Qt developers. Main features are :

  • Persistence : support most common databases like SQLite, MySQL, PostgreSQL, Oracle, MS SQL Server, MongoDB (with 1-1, 1-n, n-1 and n-n relationships) ;
  • Serialization : JSON, binary and XML format ;
  • Reflection (or Introspection) : access dynamically to classes definitions, retrieve properties and call classes methods ;
  • HTTP web server : standalone multi-threaded HTTP 1.1 web server (support SSL/TLS, persistent connections, cookies, sessions, chunked responses, URL dispatcher/routing) ;
  • JSON API : interoperability with other technology than C++/Qt (REST web services, QML applications, scripting language).

Documentation

QxOrm website provides a user manual.

The goal of this documentation is to provide a user guide to learn how to work with QxOrm library features. This manual is intended for developers and software architects who are looking for a solution to manage a persistent data layer in C++/Qt. Technical skills in C++ and databases are required to understand this document.

Note : all features described in this manual/user guide can be defined quickly and easily with QxEntityEditor application (the graphic editor for QxOrm library, data model designer and source code generator). Another documentation dedicated to QxEntityEditor application is available on QxOrm website.

QxEntityEditor application

QxEntityEditor is a graphic editor for QxOrm library : QxEntityEditor provides a graphic way to manage the data model. QxEntityEditor is multi-platform (available for Windows, Linux and Mac OS X) and generates native code for all environments : desktop (Windows, Linux, Mac OS X), embedded and mobile (Android, iOS, Windows Phone, Raspberry Pi, etc.). A user manual (documentation) for QxEntityEditor application is available on QxOrm website.

QxEntityEditor is based on plugins and provides many ways to import/export your data model :

QxEntityEditor application

Dependencies

By default, QxOrm library depends only on QtCore and QtSql libraries from Qt framework. If you enable QxOrm HTTP web server feature, then QxOrm library will depend also on QtNetwork library. Some features require boost dependency (disabled by default).

Authors

QxOrm is developed by Lionel Marty, a software development engineer since 2003.

License

QxOrm is a C++ library available under a dual license :

  • GNU/GPLv3 license : open-source and free (to develop an open-source project or to evaluate QxOrm library) ;
  • Proprietary license to distribute an application based on QxOrm library without any restrictions of GNU/GPLv3 license.
You can’t perform that action at this time.