QxOrm  1.4.8
C++ Object Relational Mapping library

qx::QxSqlRelationLinked : hierarchy of relationships to build SQL query More...

#include <QxSqlRelationLinked.h>

List of all members.

Public Types

typedef std::shared_ptr
< QxSqlRelationLinked
type_ptr
typedef std::tuple
< qx::dao::sql_join::join_type,
IxSqlRelation *, QPair< QSet
< QString >, long >, QString > 
type_relation
typedef qx::QxCollection
< QString, type_relation
type_lst_relation
typedef QHash< QString, type_ptrtype_lst_relation_linked

Public Member Functions

 QxSqlRelationLinked ()
 QxSqlRelationLinked (bool bRoot)
virtual ~QxSqlRelationLinked ()
void hierarchySelect (QxSqlRelationParams &params)
void hierarchyFrom (QxSqlRelationParams &params)
void hierarchyJoin (QxSqlRelationParams &params)
void hierarchyWhereSoftDelete (QxSqlRelationParams &params)
void hierarchyResolveOutput (QxSqlRelationParams &params)
QSqlError hierarchyOnBeforeSave (QxSqlRelationParams &params)
QSqlError hierarchyOnAfterSave (QxSqlRelationParams &params)
void updateOffset (QxSqlRelationParams &params)
bool getCartesianProduct () const
long getAllRelationCount () const
long getRelationCount () const
bool existRelation (const QString &sKey) const
type_lst_relation_linked getRelationLinkedX () const
type_lst_relation getRelationX () const
bool isRoot () const
bool checkRootColumns (const QString &s) const
long getRootColumnsCount () const
long getRootColumnsOffset () const
void setRootColumnsOffset (long l)
QString getRootCustomAlias () const

Static Public Member Functions

static type_ptr getHierarchy (IxClass *pClass, const QStringList &sRelationX, qx_bool &bOk, qx::dao::detail::IxDao_Helper *pDaoHelper=NULL)

Protected Member Functions

bool isValidDaoHelper (QxSqlRelationParams &params) const

Private Attributes

std::unique_ptr
< QxSqlRelationLinkedImpl > 
m_pImpl
 Private implementation idiom.

Detailed Description

qx::QxSqlRelationLinked : hierarchy of relationships to build SQL query

Here is the structure, each real relation has a relation linked associated to build the hierarchy, like this :

(<root>, <relation_linked>)
   ("blog", blog_relation)
   ("blog", <relation_linked>)
      ("author", author_relation)
      ("author", <relation_linked>)
         ("list_blog", list_blog_relation)
         ("list_blog", <relation_linked>)
            (etc...)
      ("comment", comment_relation)
      ("comment", <relation_linked>)
         ("blog_id", blog_id_relation)
         ("blog_id", <relation_linked>)
            (etc...)
      ("category", category_relation)
      ("category", <relation_linked>)
         ("list_blog", list_blog_relation)
         ("list_blog", <relation_linked>)
            (etc...)

Definition at line 94 of file QxSqlRelationLinked.h.


Member Typedef Documentation

Definition at line 102 of file QxSqlRelationLinked.h.

Definition at line 99 of file QxSqlRelationLinked.h.

typedef std::tuple<qx::dao::sql_join::join_type, IxSqlRelation *, QPair<QSet<QString>, long>, QString> qx::QxSqlRelationLinked::type_relation

Definition at line 100 of file QxSqlRelationLinked.h.


Constructor & Destructor Documentation

qx::QxSqlRelationLinked::QxSqlRelationLinked ( )
qx::QxSqlRelationLinked::QxSqlRelationLinked ( bool  bRoot)
virtual qx::QxSqlRelationLinked::~QxSqlRelationLinked ( ) [virtual]

Member Function Documentation

bool qx::QxSqlRelationLinked::checkRootColumns ( const QString &  s) const
bool qx::QxSqlRelationLinked::existRelation ( const QString &  sKey) const
long qx::QxSqlRelationLinked::getAllRelationCount ( ) const
bool qx::QxSqlRelationLinked::getCartesianProduct ( ) const
static type_ptr qx::QxSqlRelationLinked::getHierarchy ( IxClass pClass,
const QStringList &  sRelationX,
qx_bool bOk,
qx::dao::detail::IxDao_Helper pDaoHelper = NULL 
) [static]
long qx::QxSqlRelationLinked::getRelationCount ( ) const
type_lst_relation_linked qx::QxSqlRelationLinked::getRelationLinkedX ( ) const
type_lst_relation qx::QxSqlRelationLinked::getRelationX ( ) const
long qx::QxSqlRelationLinked::getRootColumnsCount ( ) const
long qx::QxSqlRelationLinked::getRootColumnsOffset ( ) const
QString qx::QxSqlRelationLinked::getRootCustomAlias ( ) const
void qx::QxSqlRelationLinked::hierarchyFrom ( QxSqlRelationParams params)
void qx::QxSqlRelationLinked::hierarchyJoin ( QxSqlRelationParams params)
QSqlError qx::QxSqlRelationLinked::hierarchyOnAfterSave ( QxSqlRelationParams params)
QSqlError qx::QxSqlRelationLinked::hierarchyOnBeforeSave ( QxSqlRelationParams params)
void qx::QxSqlRelationLinked::hierarchyResolveOutput ( QxSqlRelationParams params)
void qx::QxSqlRelationLinked::hierarchySelect ( QxSqlRelationParams params)
void qx::QxSqlRelationLinked::hierarchyWhereSoftDelete ( QxSqlRelationParams params)
bool qx::QxSqlRelationLinked::isRoot ( ) const
bool qx::QxSqlRelationLinked::isValidDaoHelper ( QxSqlRelationParams params) const [protected]
void qx::QxSqlRelationLinked::setRootColumnsOffset ( long  l)
void qx::QxSqlRelationLinked::updateOffset ( QxSqlRelationParams params)

Member Data Documentation

std::unique_ptr<QxSqlRelationLinkedImpl> qx::QxSqlRelationLinked::m_pImpl [private]

Private implementation idiom.

Definition at line 106 of file QxSqlRelationLinked.h.


The documentation for this class was generated from the following file: