QxOrm  1.4.5
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 > > 
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 ()
qx_bool buildHierarchy (IxSqlRelationX *pRelationX, const QStringList &sRelationX)
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 checkRootColumns (const QString &s) const
long getRootColumnsCount () const
long getRootColumnsOffset () const
void setRootColumnsOffset (long l)

Protected Member Functions

QStringList removeColumns (const QStringList &columnsToRemove, IxSqlRelation *pRelation) const
qx_bool insertRelationToHierarchy (const QStringList &sRelationX, const QString &sKey, qx::dao::sql_join::join_type eJoinType)
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 82 of file QxSqlRelationLinked.h.


Member Typedef Documentation

Definition at line 90 of file QxSqlRelationLinked.h.

Definition at line 87 of file QxSqlRelationLinked.h.

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

Definition at line 88 of file QxSqlRelationLinked.h.


Constructor & Destructor Documentation

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

Member Function Documentation

qx_bool qx::QxSqlRelationLinked::buildHierarchy ( IxSqlRelationX pRelationX,
const QStringList &  sRelationX 
)
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
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
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)
qx_bool qx::QxSqlRelationLinked::insertRelationToHierarchy ( const QStringList &  sRelationX,
const QString &  sKey,
qx::dao::sql_join::join_type  eJoinType 
) [protected]
bool qx::QxSqlRelationLinked::isValidDaoHelper ( QxSqlRelationParams params) const [protected]
QStringList qx::QxSqlRelationLinked::removeColumns ( const QStringList &  columnsToRemove,
IxSqlRelation pRelation 
) 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 94 of file QxSqlRelationLinked.h.


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