32#ifndef _QX_SQL_RELATION_LINKED_H_
33#define _QX_SQL_RELATION_LINKED_H_
46#include <QtSql/qsqlerror.h>
99 typedef std::shared_ptr<QxSqlRelationLinked>
type_ptr;
100 typedef std::tuple<qx::dao::sql_join::join_type, IxSqlRelation *, QPair<QSet<QString>,
long>, QString,
bool>
type_relation;
106 struct QxSqlRelationLinkedImpl;
107 std::unique_ptr<QxSqlRelationLinkedImpl>
m_pImpl;
Common interface for all relationships defined between 2 classes (or between 2 tables in database)
qx_bool : QxOrm library boolean type with code and description message when an error occured
QxOrm thread-safe container (keep insertion order + quick access by index + quick access by key)
qx::IxClass : common interface for all classes registered into QxOrm context
qx_bool : boolean type with code and description message when an error occured
qx::QxCollection<Key, Value> : QxOrm thread-safe container (keep insertion order + quick access by in...
qx::QxSqlRelationLinked : hierarchy of relationships to build SQL query
long getRootColumnsCount() const
bool checkRootColumns(const QString &s) const
std::unique_ptr< QxSqlRelationLinkedImpl > m_pImpl
Private implementation idiom.
void hierarchyJoin(QxSqlRelationParams ¶ms)
void setRootColumnsOffset(long l)
void hierarchySelect(QxSqlRelationParams ¶ms)
type_lst_relation_linked getRelationLinkedX() const
std::shared_ptr< QxSqlRelationLinked > type_ptr
void hierarchyWhereSoftDelete(QxSqlRelationParams ¶ms)
bool isValidDaoHelper(QxSqlRelationParams ¶ms) const
void hierarchyFrom(QxSqlRelationParams ¶ms)
QSqlError hierarchyOnBeforeSave(QxSqlRelationParams ¶ms)
void updateOffset(QxSqlRelationParams ¶ms)
static type_ptr getHierarchy(IxClass *pClass, const QStringList &sRelationX, qx_bool &bOk, qx::dao::detail::IxDao_Helper *pDaoHelper=NULL)
QSqlError hierarchyOnAfterSave(QxSqlRelationParams ¶ms)
bool getCartesianProduct() const
qx::QxCollection< QString, type_relation > type_lst_relation
bool existRelation(const QString &sKey) const
QxSqlRelationLinked(bool bRoot)
virtual ~QxSqlRelationLinked()
type_lst_relation getRelationX() const
long getAllRelationCount() const
QString getRootCustomAlias() const
QHash< QString, type_ptr > type_lst_relation_linked
long getRelationCount() const
void hierarchyResolveOutput(QxSqlRelationParams ¶ms)
long getRootColumnsOffset() const
std::tuple< qx::dao::sql_join::join_type, IxSqlRelation *, QPair< QSet< QString >, long >, QString, bool > type_relation
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
Root namespace for all QxOrm library features.
std::shared_ptr< QxSqlRelationLinked > QxSqlRelationLinked_ptr