QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches
QxDao.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** https://www.qxorm.com/
4** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
5**
6** This file is part of the QxOrm library
7**
8** This software is provided 'as-is', without any express or implied
9** warranty. In no event will the authors be held liable for any
10** damages arising from the use of this software
11**
12** Commercial Usage
13** Licensees holding valid commercial QxOrm licenses may use this file in
14** accordance with the commercial license agreement provided with the
15** Software or, alternatively, in accordance with the terms contained in
16** a written agreement between you and Lionel Marty
17**
18** GNU General Public License Usage
19** Alternatively, this file may be used under the terms of the GNU
20** General Public License version 3.0 as published by the Free Software
21** Foundation and appearing in the file 'license.gpl3.txt' included in the
22** packaging of this file. Please review the following information to
23** ensure the GNU General Public License version 3.0 requirements will be
24** met : http://www.gnu.org/copyleft/gpl.html
25**
26** If you are unsure which license is appropriate for your use, or
27** if you have questions regarding the use of this file, please contact :
28** contact@qxorm.com
29**
30****************************************************************************/
31
32#ifndef _QX_DAO_H_
33#define _QX_DAO_H_
34
35#ifdef _MSC_VER
36#pragma once
37#endif
38
46#include <QtSql/qsqldatabase.h>
47#include <QtSql/qsqlquery.h>
48#include <QtSql/qsqlrecord.h>
49#include <QtSql/qsqlfield.h>
50#include <QtSql/qsqlerror.h>
51#include <QtSql/qsqldriver.h>
52
53#include <QxCommon/QxBool.h>
54
55#include <QxDao/QxSoftDelete.h>
56#include <QxDao/QxDaoPointer.h>
57#include <QxDao/QxSqlQuery.h>
58#include <QxDao/QxSqlSaveMode.h>
59
60namespace qx {
61class QxSqlRelationParams;
62namespace dao {
63
64namespace detail {
65class IxDao_Helper;
66template <class T> struct QxDao_Count;
67template <class T> struct QxDao_Count_WithRelation;
68template <class T> struct QxDao_FetchById;
69template <class T> struct QxDao_FetchById_WithRelation;
70template <class T> struct QxDao_FetchAll;
71template <class T> struct QxDao_FetchAll_WithRelation;
72template <class T> struct QxDao_Insert;
73template <class T> struct QxDao_Insert_WithRelation;
74template <class T> struct QxDao_Update;
75template <class T> struct QxDao_Update_Optimized;
76template <class T> struct QxDao_Update_WithRelation;
77template <class T> struct QxDao_Save;
78template <class T> struct QxDao_Save_WithRelation;
79template <class T> struct QxDao_Save_WithRelation_Recursive;
80template <class T> struct QxDao_DeleteById;
81template <class T> struct QxDao_DeleteAll;
82template <class T> struct QxDao_Exist;
83template <class T> struct QxDao_CreateTable;
84template <class T> struct QxDao_Trigger;
85template <class T> struct QxDao_ExecuteQuery;
86} // namespace detail
87
97template <class T>
98inline long count(const qx::QxSqlQuery & query = qx::QxSqlQuery(), QSqlDatabase * pDatabase = NULL)
99{ return qx::dao::detail::QxDao_Count<T>::count(query, pDatabase); }
100
111template <class T>
112inline QSqlError count(long & lCount, const qx::QxSqlQuery & query = qx::QxSqlQuery(), QSqlDatabase * pDatabase = NULL)
113{ return qx::dao::detail::QxDao_Count<T>::count(lCount, query, pDatabase); }
114
126template <class T>
127inline QSqlError count_with_relation(long & lCount, const QStringList & relation, const qx::QxSqlQuery & query = qx::QxSqlQuery(), QSqlDatabase * pDatabase = NULL)
128{ return qx::dao::detail::QxDao_Count_WithRelation<T>::count(lCount, relation, query, pDatabase); }
129
141template <class T>
142inline QSqlError insert(T & t, QSqlDatabase * pDatabase = NULL, bool bUseExecBatch = false)
143{ return qx::dao::detail::QxDao_Insert<T>::insert(t, pDatabase, bUseExecBatch); }
144
157template <class T>
158inline QSqlError save(T & t, QSqlDatabase * pDatabase = NULL)
159{ return qx::dao::detail::QxDao_Save<T>::save(t, pDatabase); }
160
175template <class T>
176inline QSqlError delete_by_id(T & t, QSqlDatabase * pDatabase = NULL, bool bUseExecBatch = false)
177{ return qx::dao::detail::QxDao_DeleteById<T>::deleteById(t, pDatabase, true, bUseExecBatch); }
178
190template <class T>
191inline QSqlError destroy_by_id(T & t, QSqlDatabase * pDatabase = NULL, bool bUseExecBatch = false)
192{ return qx::dao::detail::QxDao_DeleteById<T>::deleteById(t, pDatabase, false, bUseExecBatch); }
193
206template <class T>
207inline QSqlError delete_all(QSqlDatabase * pDatabase = NULL)
208{ return qx::dao::detail::QxDao_DeleteAll<T>::deleteAll("", pDatabase, true); }
209
219template <class T>
220inline QSqlError destroy_all(QSqlDatabase * pDatabase = NULL)
221{ return qx::dao::detail::QxDao_DeleteAll<T>::deleteAll("", pDatabase, false); }
222
236template <class T>
237inline QSqlError delete_by_query(const qx::QxSqlQuery & query, QSqlDatabase * pDatabase = NULL)
238{ return qx::dao::detail::QxDao_DeleteAll<T>::deleteAll(query, pDatabase, true); }
239
250template <class T>
251inline QSqlError destroy_by_query(const qx::QxSqlQuery & query, QSqlDatabase * pDatabase = NULL)
252{ return qx::dao::detail::QxDao_DeleteAll<T>::deleteAll(query, pDatabase, false); }
253
263template <class T>
264inline QSqlError create_table(QSqlDatabase * pDatabase = NULL)
266
277template <class T>
278inline qx_bool exist(T & t, QSqlDatabase * pDatabase = NULL)
279{ return qx::dao::detail::QxDao_Exist<T>::exist(t, pDatabase); }
280
292template <class T>
293inline QSqlError fetch_by_id_with_relation(const QString & relation, T & t, QSqlDatabase * pDatabase = NULL)
294{ return qx::dao::detail::QxDao_FetchById_WithRelation<T>::fetchById(relation, t, pDatabase); }
295
307template <class T>
308inline QSqlError fetch_by_id_with_relation(const QStringList & relation, T & t, QSqlDatabase * pDatabase = NULL)
309{ return qx::dao::detail::QxDao_FetchById_WithRelation<T>::fetchById(relation, t, pDatabase); }
310
321template <class T>
322inline QSqlError fetch_by_id_with_all_relation(T & t, QSqlDatabase * pDatabase = NULL)
324
336template <class T>
337inline QSqlError fetch_all_with_relation(const QString & relation, T & t, QSqlDatabase * pDatabase = NULL)
338{ return qx::dao::detail::QxDao_FetchAll_WithRelation<T>::fetchAll(relation, "", t, pDatabase); }
339
351template <class T>
352inline QSqlError fetch_all_with_relation(const QStringList & relation, T & t, QSqlDatabase * pDatabase = NULL)
353{ return qx::dao::detail::QxDao_FetchAll_WithRelation<T>::fetchAll(relation, "", t, pDatabase); }
354
365template <class T>
366inline QSqlError fetch_all_with_all_relation(T & t, QSqlDatabase * pDatabase = NULL)
367{ return qx::dao::detail::QxDao_FetchAll_WithRelation<T>::fetchAll("*", "", t, pDatabase); }
368
381template <class T>
382inline QSqlError fetch_by_query_with_relation(const QString & relation, const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL)
383{ return qx::dao::detail::QxDao_FetchAll_WithRelation<T>::fetchAll(relation, query, t, pDatabase); }
384
397template <class T>
398inline QSqlError fetch_by_query_with_relation(const QStringList & relation, const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL)
399{ return qx::dao::detail::QxDao_FetchAll_WithRelation<T>::fetchAll(relation, query, t, pDatabase); }
400
412template <class T>
413inline QSqlError fetch_by_query_with_all_relation(const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL)
414{ return qx::dao::detail::QxDao_FetchAll_WithRelation<T>::fetchAll("*", query, t, pDatabase); }
415
427template <class T>
428inline QSqlError insert_with_relation(const QString & relation, T & t, QSqlDatabase * pDatabase = NULL)
429{ return qx::dao::detail::QxDao_Insert_WithRelation<T>::insert(relation, t, pDatabase); }
430
442template <class T>
443inline QSqlError insert_with_relation(const QStringList & relation, T & t, QSqlDatabase * pDatabase = NULL)
444{ return qx::dao::detail::QxDao_Insert_WithRelation<T>::insert(relation, t, pDatabase); }
445
456template <class T>
457inline QSqlError insert_with_all_relation(T & t, QSqlDatabase * pDatabase = NULL)
459
471template <class T>
472inline QSqlError update_with_relation(const QString & relation, T & t, QSqlDatabase * pDatabase = NULL)
473{ return qx::dao::detail::QxDao_Update_WithRelation<T>::update(relation, "", t, pDatabase); }
474
487template <class T>
488inline QSqlError update_by_query_with_relation(const QString & relation, const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL)
489{ return qx::dao::detail::QxDao_Update_WithRelation<T>::update(relation, query, t, pDatabase); }
490
502template <class T>
503inline QSqlError update_with_relation(const QStringList & relation, T & t, QSqlDatabase * pDatabase = NULL)
504{ return qx::dao::detail::QxDao_Update_WithRelation<T>::update(relation, "", t, pDatabase); }
505
518template <class T>
519inline QSqlError update_by_query_with_relation(const QStringList & relation, const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL)
520{ return qx::dao::detail::QxDao_Update_WithRelation<T>::update(relation, query, t, pDatabase); }
521
532template <class T>
533inline QSqlError update_with_all_relation(T & t, QSqlDatabase * pDatabase = NULL)
534{ return qx::dao::detail::QxDao_Update_WithRelation<T>::update("*", "", t, pDatabase); }
535
547template <class T>
548inline QSqlError update_by_query_with_all_relation(const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL)
549{ return qx::dao::detail::QxDao_Update_WithRelation<T>::update("*", query, t, pDatabase); }
550
564template <class T>
565inline QSqlError save_with_relation(const QString & relation, T & t, QSqlDatabase * pDatabase = NULL)
566{ return qx::dao::detail::QxDao_Save_WithRelation<T>::save(relation, t, pDatabase); }
567
581template <class T>
582inline QSqlError save_with_relation(const QStringList & relation, T & t, QSqlDatabase * pDatabase = NULL)
583{ return qx::dao::detail::QxDao_Save_WithRelation<T>::save(relation, t, pDatabase); }
584
597template <class T>
598inline QSqlError save_with_all_relation(T & t, QSqlDatabase * pDatabase = NULL)
599{ return qx::dao::detail::QxDao_Save_WithRelation<T>::save("*", t, pDatabase); }
600
620template <class T>
621inline QSqlError save_with_relation_recursive(T & t, qx::dao::save_mode::e_save_mode eSaveMode = qx::dao::save_mode::e_check_insert_or_update, QSqlDatabase * pDatabase = NULL, qx::QxSqlRelationParams * pRelationParams = NULL)
622{ return qx::dao::detail::QxDao_Save_WithRelation_Recursive<T>::save(t, eSaveMode, pDatabase, pRelationParams); }
623
635template <class T>
636inline QSqlError fetch_by_id(T & t, QSqlDatabase * pDatabase = NULL, const QStringList & columns = QStringList())
637{ return qx::dao::detail::QxDao_FetchById<T>::fetchById(t, pDatabase, columns); }
638
650template <class T>
651inline QSqlError fetch_all(T & t, QSqlDatabase * pDatabase = NULL, const QStringList & columns = QStringList())
652{ return qx::dao::detail::QxDao_FetchAll<T>::fetchAll("", t, pDatabase, columns); }
653
666template <class T>
667inline QSqlError fetch_by_query(const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL, const QStringList & columns = QStringList())
668{ return qx::dao::detail::QxDao_FetchAll<T>::fetchAll(query, t, pDatabase, columns); }
669
682template <class T>
683inline QSqlError update(T & t, QSqlDatabase * pDatabase = NULL, const QStringList & columns = QStringList(), bool bUseExecBatch = false)
684{ return qx::dao::detail::QxDao_Update<T>::update("", t, pDatabase, columns, bUseExecBatch); }
685
699template <class T>
700inline QSqlError update_by_query(const qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL, const QStringList & columns = QStringList(), bool bUseExecBatch = false)
701{ return qx::dao::detail::QxDao_Update<T>::update(query, t, pDatabase, columns, bUseExecBatch); }
702
714template <class T>
715inline QSqlError update_optimized(qx::dao::ptr<T> & ptr, QSqlDatabase * pDatabase = NULL, bool bUseExecBatch = false)
716{ return qx::dao::detail::QxDao_Update_Optimized<T>::update_optimized("", ptr, pDatabase, bUseExecBatch); }
717
730template <class T>
731inline QSqlError update_optimized_by_query(const qx::QxSqlQuery & query, qx::dao::ptr<T> & ptr, QSqlDatabase * pDatabase = NULL, bool bUseExecBatch = false)
732{ return qx::dao::detail::QxDao_Update_Optimized<T>::update_optimized(query, ptr, pDatabase, bUseExecBatch); }
733
742template <class T>
743inline QSqlError execute_query(qx::QxSqlQuery & query, T & t, QSqlDatabase * pDatabase = NULL)
744{ return qx::dao::detail::QxDao_ExecuteQuery<T>::executeQuery(query, t, pDatabase); }
745
750template <class T>
753
758template <class T>
761
766template <class T>
769
774template <class T>
777
782template <class T>
785
790template <class T>
793
798template <class T>
801
806template <class T>
809
810} // namespace dao
811} // namespace qx
812
813#endif // _QX_DAO_H_
qx_bool : QxOrm library boolean type with code and description message when an error occured
qx::dao::ptr<T> : provide a classic smart-pointer (like boost::shared_ptr<T> or QSharedPointer<T>) wi...
Soft delete (or logical delete) behavior to update a row into database (flag it as deleted) instead o...
Define a user SQL query added to default SQL query builded by QxOrm library, and used by qx::dao::xxx...
To improve performance, if you know that you are just inserting or updating items in database.
qx_bool : boolean type with code and description message when an error occured
Definition QxBool.h:71
qx::QxSqlQuery : define a user SQL query added to default SQL query builded by QxOrm library,...
Definition QxSqlQuery.h:245
qx::QxSqlRelationParams : define list of parameters to transfer to relationships to manage SQL querie...
qx::dao::detail::IxDao_Helper : helper class to communicate with database
qx::dao::ptr<T> : provide a classic smart-pointer (like boost::shared_ptr<T> or QSharedPointer<T>) wi...
QSqlError destroy_all(QSqlDatabase *pDatabase=NULL)
Destroy all lines of a table (database) mapped to a C++ class T (registered into QxOrm context),...
Definition QxDao.h:220
QSqlError execute_query(qx::QxSqlQuery &query, T &t, QSqlDatabase *pDatabase=NULL)
Execute a custom SQL query or a stored procedure, all columns that can be mapped to the instance of t...
Definition QxDao.h:743
QSqlError update_with_all_relation(T &t, QSqlDatabase *pDatabase=NULL)
Update an element and all its relationships (or a list of elements + all relationships) into database...
Definition QxDao.h:533
QSqlError save(T &t, QSqlDatabase *pDatabase=NULL)
Insert (if no exist) or update (if already exist) an element or a list of elements into database.
Definition QxDao.h:158
QSqlError update_with_relation(const QString &relation, T &t, QSqlDatabase *pDatabase=NULL)
Update an element and its relationships (or a list of elements + relationships) into database.
Definition QxDao.h:472
QSqlError update_by_query_with_all_relation(const qx::QxSqlQuery &query, T &t, QSqlDatabase *pDatabase=NULL)
Update an element and all its relationships (or a list of elements + all relationships) into database...
Definition QxDao.h:548
QSqlError fetch_by_id(T &t, QSqlDatabase *pDatabase=NULL, const QStringList &columns=QStringList())
Fetch an object t (retrieve all its properties) of type T (registered into QxOrm context) mapped to a...
Definition QxDao.h:636
QSqlError fetch_by_query_with_relation(const QString &relation, const qx::QxSqlQuery &query, T &t, QSqlDatabase *pDatabase=NULL)
Fetch a list of objects (retrieve all elements and properties associated) of type T (container regist...
Definition QxDao.h:382
QSqlError fetch_by_id_with_relation(const QString &relation, T &t, QSqlDatabase *pDatabase=NULL)
Fetch an object t (retrieve all its properties) of type T (registered into QxOrm context) mapped to a...
Definition QxDao.h:293
void on_after_update(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback after updating an object into database (here is an example using QxOrm Trigger)
Definition QxDao.h:791
QSqlError delete_by_id(T &t, QSqlDatabase *pDatabase=NULL, bool bUseExecBatch=false)
Delete a line (or list of lines) of a table (database) mapped to a C++ object of type T (registered i...
Definition QxDao.h:176
qx_bool exist(T &t, QSqlDatabase *pDatabase=NULL)
Search if an element (or list of elements) already exists into database.
Definition QxDao.h:278
QSqlError insert_with_all_relation(T &t, QSqlDatabase *pDatabase=NULL)
Insert an element and all its relationships (or a list of elements + all relationships) into database...
Definition QxDao.h:457
void on_after_delete(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback after deleting an object into database (here is an example using QxOrm trigger)
Definition QxDao.h:799
void on_before_delete(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback before deleting an object into database (here is an example using QxOrm Trigger)
Definition QxDao.h:767
QSqlError save_with_relation(const QString &relation, T &t, QSqlDatabase *pDatabase=NULL)
Insert (if no exist) or update (if already exist) an element and its relationships (or a list of elem...
Definition QxDao.h:565
QSqlError insert_with_relation(const QString &relation, T &t, QSqlDatabase *pDatabase=NULL)
Insert an element and its relationships (or a list of elements + relationships) into database.
Definition QxDao.h:428
QSqlError insert(T &t, QSqlDatabase *pDatabase=NULL, bool bUseExecBatch=false)
Insert an element or a list of elements into database.
Definition QxDao.h:142
QSqlError destroy_by_query(const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)
Destroy all lines of a table (database) mapped to a C++ class T (registered into QxOrm context) and f...
Definition QxDao.h:251
void on_before_fetch(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback before fetching an object from database (here is an example using QxOrm Trigger)
Definition QxDao.h:775
QSqlError save_with_all_relation(T &t, QSqlDatabase *pDatabase=NULL)
Insert (if no exist) or update (if already exist) an element and all its relationships (or a list of ...
Definition QxDao.h:598
QSqlError delete_all(QSqlDatabase *pDatabase=NULL)
Delete all lines of a table (database) mapped to a C++ class T (registered into QxOrm context)
Definition QxDao.h:207
QSqlError update_by_query(const qx::QxSqlQuery &query, T &t, QSqlDatabase *pDatabase=NULL, const QStringList &columns=QStringList(), bool bUseExecBatch=false)
Update an element or a list of elements into database (adding a user SQL query to the default SQL que...
Definition QxDao.h:700
QSqlError fetch_by_query(const qx::QxSqlQuery &query, T &t, QSqlDatabase *pDatabase=NULL, const QStringList &columns=QStringList())
Fetch a list of objects (retrieve all elements and properties associated) of type T (container regist...
Definition QxDao.h:667
QSqlError update_by_query_with_relation(const QString &relation, const qx::QxSqlQuery &query, T &t, QSqlDatabase *pDatabase=NULL)
Update an element and its relationships (or a list of elements + relationships) into database (adding...
Definition QxDao.h:488
void on_before_update(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback before updating an object into database (here is an example using QxOrm Trigger)
Definition QxDao.h:759
QSqlError update(T &t, QSqlDatabase *pDatabase=NULL, const QStringList &columns=QStringList(), bool bUseExecBatch=false)
Update an element or a list of elements into database.
Definition QxDao.h:683
QSqlError fetch_all(T &t, QSqlDatabase *pDatabase=NULL, const QStringList &columns=QStringList())
Fetch a list of objects (retrieve all elements and properties associated) of type T (container regist...
Definition QxDao.h:651
void on_after_fetch(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback after fetching an object from database (here is an example using QxOrm trigger)
Definition QxDao.h:807
QSqlError update_optimized_by_query(const qx::QxSqlQuery &query, qx::dao::ptr< T > &ptr, QSqlDatabase *pDatabase=NULL, bool bUseExecBatch=false)
Update only modified fields/properties of an element or a list of elements into database (using is di...
Definition QxDao.h:731
QSqlError fetch_by_query_with_all_relation(const qx::QxSqlQuery &query, T &t, QSqlDatabase *pDatabase=NULL)
Fetch a list of objects (retrieve all elements and properties + all relationships associated) of type...
Definition QxDao.h:413
QSqlError delete_by_query(const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)
Delete all lines of a table (database) mapped to a C++ class T (registered into QxOrm context) and fi...
Definition QxDao.h:237
QSqlError update_optimized(qx::dao::ptr< T > &ptr, QSqlDatabase *pDatabase=NULL, bool bUseExecBatch=false)
Update only modified fields/properties of an element or a list of elements into database (using is di...
Definition QxDao.h:715
void on_after_insert(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback after inserting an object into database (here is an example using QxOrm Trigger)
Definition QxDao.h:783
QSqlError create_table(QSqlDatabase *pDatabase=NULL)
Create a table into database (with all columns) mapped to a C++ class T (registered into QxOrm contex...
Definition QxDao.h:264
QSqlError count_with_relation(long &lCount, const QStringList &relation, const qx::QxSqlQuery &query=qx::QxSqlQuery(), QSqlDatabase *pDatabase=NULL)
Return the number of lines in the table (database) mapped to the C++ class T (registered into QxOrm c...
Definition QxDao.h:127
QSqlError fetch_all_with_relation(const QString &relation, T &t, QSqlDatabase *pDatabase=NULL)
Fetch a list of objects (retrieve all elements and properties associated) of type T (container regist...
Definition QxDao.h:337
QSqlError save_with_relation_recursive(T &t, qx::dao::save_mode::e_save_mode eSaveMode=qx::dao::save_mode::e_check_insert_or_update, QSqlDatabase *pDatabase=NULL, qx::QxSqlRelationParams *pRelationParams=NULL)
Insert (if no exist) or update (if already exist) recursively an element and all levels of relationsh...
Definition QxDao.h:621
void on_before_insert(T *t, qx::dao::detail::IxDao_Helper *dao)
Callback before inserting an object into database (here is an example using QxOrm Trigger)
Definition QxDao.h:751
long count(const qx::QxSqlQuery &query=qx::QxSqlQuery(), QSqlDatabase *pDatabase=NULL)
Return the number of lines in the table (database) mapped to the C++ class T (registered into QxOrm c...
Definition QxDao.h:98
QSqlError fetch_by_id_with_all_relation(T &t, QSqlDatabase *pDatabase=NULL)
Fetch an object t (retrieve all its properties and relationships) of type T (registered into QxOrm co...
Definition QxDao.h:322
QSqlError destroy_by_id(T &t, QSqlDatabase *pDatabase=NULL, bool bUseExecBatch=false)
Destroy a line (or list of lines) of a table (database) mapped to a C++ object of type T (registered ...
Definition QxDao.h:191
QSqlError fetch_all_with_all_relation(T &t, QSqlDatabase *pDatabase=NULL)
Fetch a list of objects (retrieve all elements and properties + all relationships associated) of type...
Definition QxDao.h:366
Root namespace for all QxOrm library features.