QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches

qx::IxSqlRelation : common interface for all relationships defined between 2 classes (or between 2 tables in database) More...

#include <IxSqlRelation.h>

Inheritance diagram for qx::IxSqlRelation:
qx::QxPropertyBag qx::QxSqlRelation< DataType, Owner > qx::QxSqlRelation_ManyToMany< DataType, Owner > qx::QxSqlRelation_ManyToOne< DataType, Owner > qx::QxSqlRelation_OneToMany< DataType, Owner > qx::QxSqlRelation_OneToOne< DataType, Owner >

Public Types

enum  relation_type {
  no_relation , one_to_one , one_to_many , many_to_one ,
  many_to_many
}
 

Public Member Functions

 IxSqlRelation (IxDataMember *p)
 
virtual ~IxSqlRelation ()=0
 
QxCollection< QString, IxDataMember * > * getLstDataMember () const
 
IxSqlRelationXgetLstRelation () const
 
void setSqlJoinType (qx::dao::sql_join::join_type e)
 
qx::dao::sql_join::join_type getSqlJoinType () const
 
relation_type getRelationType () const
 
IxClassgetClass () const
 
IxClassgetClassOwner () const
 
IxDataMembergetDataMember () const
 
IxDataMemberXgetDataMemberX () const
 
IxDataMembergetDataId () const
 
IxDataMembergetDataIdOwner () const
 
QString getKey () const
 
QString getForeignKey () const
 
QString getForeignKeyOwner () const
 
QString getForeignKeyDataType () const
 
QString getExtraTable () const
 
long getDataCount () const
 
long getRelationCount () const
 
IxDataMembergetDataByKey (const QString &sKey) const
 
IxDataMembernextData (long &lIndex) const
 
IxSqlRelationnextRelation (long &lIndex) const
 
QString table () const
 
QString tableAlias (QxSqlRelationParams &params) const
 
QString tableAliasOwner (QxSqlRelationParams &params) const
 
QString getSqlJoin (qx::dao::sql_join::join_type e=qx::dao::sql_join::no_join) const
 
bool traceSqlQuery () const
 
virtual void init ()
 
virtual QString getDescription () const =0
 
virtual QString createExtraTable () const =0
 
virtual bool getCartesianProduct () const =0
 
virtual QVariant getIdFromQuery (bool bEager, QxSqlRelationParams &params, int iOffset, int iNameIndex) const =0
 
virtual void updateOffset (bool bEager, QxSqlRelationParams &params) const =0
 
virtual void createTable (QxSqlRelationParams &params) const =0
 
virtual void lazySelect (QxSqlRelationParams &params) const =0
 
virtual void eagerSelect (QxSqlRelationParams &params) const =0
 
virtual void lazyFrom (QxSqlRelationParams &params) const =0
 
virtual void eagerFrom (QxSqlRelationParams &params) const =0
 
virtual void lazyJoin (QxSqlRelationParams &params) const =0
 
virtual void eagerJoin (QxSqlRelationParams &params) const =0
 
virtual void lazyWhere (QxSqlRelationParams &params) const =0
 
virtual void eagerWhere (QxSqlRelationParams &params) const =0
 
virtual void lazyWhereSoftDelete (QxSqlRelationParams &params) const =0
 
virtual void eagerWhereSoftDelete (QxSqlRelationParams &params) const =0
 
virtual void lazyFetch_ResolveInput (QxSqlRelationParams &params) const =0
 
virtual void eagerFetch_ResolveInput (QxSqlRelationParams &params) const =0
 
virtual void lazyFetch_ResolveOutput (QxSqlRelationParams &params) const =0
 
virtual void * eagerFetch_ResolveOutput (QxSqlRelationParams &params) const =0
 
virtual void lazyInsert (QxSqlRelationParams &params) const =0
 
virtual void lazyInsert_Values (QxSqlRelationParams &params) const =0
 
virtual void lazyUpdate (QxSqlRelationParams &params) const =0
 
virtual void lazyInsert_ResolveInput (QxSqlRelationParams &params) const =0
 
virtual void lazyUpdate_ResolveInput (QxSqlRelationParams &params) const =0
 
virtual QSqlError onBeforeSave (QxSqlRelationParams &params) const =0
 
virtual QSqlError onAfterSave (QxSqlRelationParams &params) const =0
 
bool verifyOffset (QxSqlRelationParams &params, bool bId) const QX_USED
 
- Public Member Functions inherited from qx::QxPropertyBag
 QxPropertyBag ()
 
virtual ~QxPropertyBag ()
 
void setPropertyBag (const QString &key, const QVariant &value)
 
QVariant getPropertyBag (const QString &key) const
 
void removePropertyBag (const QString &key)
 
void clearPropertyBag ()
 
long countPropertyBag () const
 
QList< QString > getAllPropertyBagKeys () const
 

Static Public Member Functions

static void setTraceRelationInit (bool bTrace)
 

Protected Member Functions

QVariant getIdFromQuery_ManyToMany (bool bEager, QxSqlRelationParams &params, int iOffset, int iNameIndex) const
 
QVariant getIdFromQuery_ManyToOne (bool bEager, QxSqlRelationParams &params, int iOffset, int iNameIndex) const
 
QVariant getIdFromQuery_OneToMany (bool bEager, QxSqlRelationParams &params, int iOffset, int iNameIndex) const
 
QVariant getIdFromQuery_OneToOne (bool bEager, QxSqlRelationParams &params, int iOffset, int iNameIndex) const
 
void updateOffset_ManyToMany (bool bEager, QxSqlRelationParams &params) const
 
void updateOffset_ManyToOne (bool bEager, QxSqlRelationParams &params) const
 
void updateOffset_OneToMany (bool bEager, QxSqlRelationParams &params) const
 
void updateOffset_OneToOne (bool bEager, QxSqlRelationParams &params) const
 
void eagerSelect_ManyToMany (QxSqlRelationParams &params) const
 
void eagerSelect_ManyToOne (QxSqlRelationParams &params) const
 
void eagerSelect_OneToMany (QxSqlRelationParams &params) const
 
void eagerSelect_OneToOne (QxSqlRelationParams &params) const
 
void eagerJoin_ManyToMany (QxSqlRelationParams &params) const
 
void eagerJoin_ManyToOne (QxSqlRelationParams &params) const
 
void eagerJoin_OneToMany (QxSqlRelationParams &params) const
 
void eagerJoin_OneToOne (QxSqlRelationParams &params) const
 
void eagerWhereSoftDelete_ManyToMany (QxSqlRelationParams &params) const
 
void eagerWhereSoftDelete_ManyToOne (QxSqlRelationParams &params) const
 
void eagerWhereSoftDelete_OneToMany (QxSqlRelationParams &params) const
 
void eagerWhereSoftDelete_OneToOne (QxSqlRelationParams &params) const
 
void lazySelect_ManyToOne (QxSqlRelationParams &params) const
 
void lazyInsert_ManyToOne (QxSqlRelationParams &params) const
 
void lazyInsert_Values_ManyToOne (QxSqlRelationParams &params) const
 
void lazyUpdate_ManyToOne (QxSqlRelationParams &params) const
 
void createTable_ManyToOne (QxSqlRelationParams &params) const
 
QSqlError deleteFromExtraTable_ManyToMany (QxSqlRelationParams &params) const
 
QString createExtraTable_ManyToMany () const
 
bool addLazyRelation (QxSqlRelationParams &params, IxSqlRelation *pRelation) const
 
bool canInit () const
 
void setIsSameDataOwner (int i)
 
void setClass (IxClass *pClass, IxClass *pClassOwner)
 
void setRelationType (relation_type e)
 
void setForeignKey (const QString &s) const
 
void setForeignKeyOwner (const QString &s) const
 
void setForeignKeyDataType (const QString &s) const
 
void setExtraTable (const QString &s) const
 

Private Attributes

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

Additional Inherited Members

- Protected Types inherited from qx::QxPropertyBag
typedef QHash< QString, QVariant > type_hash_prop_bag
 
typedef std::shared_ptr< type_hash_prop_bagtype_hash_prop_bag_ptr
 
- Protected Attributes inherited from qx::QxPropertyBag
type_hash_prop_bag_ptr m_lstPropertyBag
 List of all properties in the bag (meta-data)
 

Detailed Description

qx::IxSqlRelation : common interface for all relationships defined between 2 classes (or between 2 tables in database)

Definition at line 68 of file IxSqlRelation.h.

Member Enumeration Documentation

◆ relation_type

Enumerator
no_relation 
one_to_one 
one_to_many 
many_to_one 
many_to_many 

Definition at line 78 of file IxSqlRelation.h.

Constructor & Destructor Documentation

◆ IxSqlRelation()

qx::IxSqlRelation::IxSqlRelation ( IxDataMember * p)

◆ ~IxSqlRelation()

virtual qx::IxSqlRelation::~IxSqlRelation ( )
pure virtual

Member Function Documentation

◆ addLazyRelation()

bool qx::IxSqlRelation::addLazyRelation ( QxSqlRelationParams & params,
IxSqlRelation * pRelation ) const
protected

◆ canInit()

bool qx::IxSqlRelation::canInit ( ) const
protected

◆ createExtraTable()

◆ createExtraTable_ManyToMany()

QString qx::IxSqlRelation::createExtraTable_ManyToMany ( ) const
protected

◆ createTable()

◆ createTable_ManyToOne()

void qx::IxSqlRelation::createTable_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ deleteFromExtraTable_ManyToMany()

QSqlError qx::IxSqlRelation::deleteFromExtraTable_ManyToMany ( QxSqlRelationParams & params) const
protected

◆ eagerFetch_ResolveInput()

◆ eagerFetch_ResolveOutput()

◆ eagerFrom()

◆ eagerJoin()

◆ eagerJoin_ManyToMany()

void qx::IxSqlRelation::eagerJoin_ManyToMany ( QxSqlRelationParams & params) const
protected

◆ eagerJoin_ManyToOne()

void qx::IxSqlRelation::eagerJoin_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ eagerJoin_OneToMany()

void qx::IxSqlRelation::eagerJoin_OneToMany ( QxSqlRelationParams & params) const
protected

◆ eagerJoin_OneToOne()

void qx::IxSqlRelation::eagerJoin_OneToOne ( QxSqlRelationParams & params) const
protected

◆ eagerSelect()

◆ eagerSelect_ManyToMany()

void qx::IxSqlRelation::eagerSelect_ManyToMany ( QxSqlRelationParams & params) const
protected

◆ eagerSelect_ManyToOne()

void qx::IxSqlRelation::eagerSelect_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ eagerSelect_OneToMany()

void qx::IxSqlRelation::eagerSelect_OneToMany ( QxSqlRelationParams & params) const
protected

◆ eagerSelect_OneToOne()

void qx::IxSqlRelation::eagerSelect_OneToOne ( QxSqlRelationParams & params) const
protected

◆ eagerWhere()

◆ eagerWhereSoftDelete()

◆ eagerWhereSoftDelete_ManyToMany()

void qx::IxSqlRelation::eagerWhereSoftDelete_ManyToMany ( QxSqlRelationParams & params) const
protected

◆ eagerWhereSoftDelete_ManyToOne()

void qx::IxSqlRelation::eagerWhereSoftDelete_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ eagerWhereSoftDelete_OneToMany()

void qx::IxSqlRelation::eagerWhereSoftDelete_OneToMany ( QxSqlRelationParams & params) const
protected

◆ eagerWhereSoftDelete_OneToOne()

void qx::IxSqlRelation::eagerWhereSoftDelete_OneToOne ( QxSqlRelationParams & params) const
protected

◆ getCartesianProduct()

◆ getClass()

IxClass * qx::IxSqlRelation::getClass ( ) const

◆ getClassOwner()

IxClass * qx::IxSqlRelation::getClassOwner ( ) const

◆ getDataByKey()

IxDataMember * qx::IxSqlRelation::getDataByKey ( const QString & sKey) const

◆ getDataCount()

long qx::IxSqlRelation::getDataCount ( ) const

◆ getDataId()

IxDataMember * qx::IxSqlRelation::getDataId ( ) const

◆ getDataIdOwner()

IxDataMember * qx::IxSqlRelation::getDataIdOwner ( ) const

◆ getDataMember()

IxDataMember * qx::IxSqlRelation::getDataMember ( ) const

◆ getDataMemberX()

IxDataMemberX * qx::IxSqlRelation::getDataMemberX ( ) const

◆ getDescription()

◆ getExtraTable()

QString qx::IxSqlRelation::getExtraTable ( ) const

◆ getForeignKey()

QString qx::IxSqlRelation::getForeignKey ( ) const

◆ getForeignKeyDataType()

QString qx::IxSqlRelation::getForeignKeyDataType ( ) const

◆ getForeignKeyOwner()

QString qx::IxSqlRelation::getForeignKeyOwner ( ) const

◆ getIdFromQuery()

virtual QVariant qx::IxSqlRelation::getIdFromQuery ( bool bEager,
QxSqlRelationParams & params,
int iOffset,
int iNameIndex ) const
pure virtual

◆ getIdFromQuery_ManyToMany()

QVariant qx::IxSqlRelation::getIdFromQuery_ManyToMany ( bool bEager,
QxSqlRelationParams & params,
int iOffset,
int iNameIndex ) const
protected

◆ getIdFromQuery_ManyToOne()

QVariant qx::IxSqlRelation::getIdFromQuery_ManyToOne ( bool bEager,
QxSqlRelationParams & params,
int iOffset,
int iNameIndex ) const
protected

◆ getIdFromQuery_OneToMany()

QVariant qx::IxSqlRelation::getIdFromQuery_OneToMany ( bool bEager,
QxSqlRelationParams & params,
int iOffset,
int iNameIndex ) const
protected

◆ getIdFromQuery_OneToOne()

QVariant qx::IxSqlRelation::getIdFromQuery_OneToOne ( bool bEager,
QxSqlRelationParams & params,
int iOffset,
int iNameIndex ) const
protected

◆ getKey()

QString qx::IxSqlRelation::getKey ( ) const

◆ getLstDataMember()

QxCollection< QString, IxDataMember * > * qx::IxSqlRelation::getLstDataMember ( ) const

◆ getLstRelation()

IxSqlRelationX * qx::IxSqlRelation::getLstRelation ( ) const

◆ getRelationCount()

long qx::IxSqlRelation::getRelationCount ( ) const

◆ getRelationType()

relation_type qx::IxSqlRelation::getRelationType ( ) const

◆ getSqlJoin()

QString qx::IxSqlRelation::getSqlJoin ( qx::dao::sql_join::join_type e = qx::dao::sql_join::no_join) const

◆ getSqlJoinType()

qx::dao::sql_join::join_type qx::IxSqlRelation::getSqlJoinType ( ) const

◆ init()

virtual void qx::IxSqlRelation::init ( )
virtual

◆ lazyFetch_ResolveInput()

◆ lazyFetch_ResolveOutput()

◆ lazyFrom()

◆ lazyInsert()

◆ lazyInsert_ManyToOne()

void qx::IxSqlRelation::lazyInsert_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ lazyInsert_ResolveInput()

◆ lazyInsert_Values()

◆ lazyInsert_Values_ManyToOne()

void qx::IxSqlRelation::lazyInsert_Values_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ lazyJoin()

◆ lazySelect()

◆ lazySelect_ManyToOne()

void qx::IxSqlRelation::lazySelect_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ lazyUpdate()

◆ lazyUpdate_ManyToOne()

void qx::IxSqlRelation::lazyUpdate_ManyToOne ( QxSqlRelationParams & params) const
protected

◆ lazyUpdate_ResolveInput()

◆ lazyWhere()

◆ lazyWhereSoftDelete()

◆ nextData()

IxDataMember * qx::IxSqlRelation::nextData ( long & lIndex) const

◆ nextRelation()

IxSqlRelation * qx::IxSqlRelation::nextRelation ( long & lIndex) const

◆ onAfterSave()

◆ onBeforeSave()

◆ setClass()

void qx::IxSqlRelation::setClass ( IxClass * pClass,
IxClass * pClassOwner )
protected

◆ setExtraTable()

void qx::IxSqlRelation::setExtraTable ( const QString & s) const
protected

◆ setForeignKey()

void qx::IxSqlRelation::setForeignKey ( const QString & s) const
protected

◆ setForeignKeyDataType()

void qx::IxSqlRelation::setForeignKeyDataType ( const QString & s) const
protected

◆ setForeignKeyOwner()

void qx::IxSqlRelation::setForeignKeyOwner ( const QString & s) const
protected

◆ setIsSameDataOwner()

void qx::IxSqlRelation::setIsSameDataOwner ( int i)
protected

◆ setRelationType()

void qx::IxSqlRelation::setRelationType ( relation_type e)
protected

◆ setSqlJoinType()

void qx::IxSqlRelation::setSqlJoinType ( qx::dao::sql_join::join_type e)

◆ setTraceRelationInit()

static void qx::IxSqlRelation::setTraceRelationInit ( bool bTrace)
static

◆ table()

QString qx::IxSqlRelation::table ( ) const

◆ tableAlias()

QString qx::IxSqlRelation::tableAlias ( QxSqlRelationParams & params) const

◆ tableAliasOwner()

QString qx::IxSqlRelation::tableAliasOwner ( QxSqlRelationParams & params) const

◆ traceSqlQuery()

bool qx::IxSqlRelation::traceSqlQuery ( ) const

◆ updateOffset()

◆ updateOffset_ManyToMany()

void qx::IxSqlRelation::updateOffset_ManyToMany ( bool bEager,
QxSqlRelationParams & params ) const
protected

◆ updateOffset_ManyToOne()

void qx::IxSqlRelation::updateOffset_ManyToOne ( bool bEager,
QxSqlRelationParams & params ) const
protected

◆ updateOffset_OneToMany()

void qx::IxSqlRelation::updateOffset_OneToMany ( bool bEager,
QxSqlRelationParams & params ) const
protected

◆ updateOffset_OneToOne()

void qx::IxSqlRelation::updateOffset_OneToOne ( bool bEager,
QxSqlRelationParams & params ) const
protected

◆ verifyOffset()

bool qx::IxSqlRelation::verifyOffset ( QxSqlRelationParams & params,
bool bId ) const

Member Data Documentation

◆ m_pImpl

std::unique_ptr<IxSqlRelationImpl> qx::IxSqlRelation::m_pImpl
private

Private implementation idiom.

Definition at line 74 of file IxSqlRelation.h.


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