QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches
qx::QxSqlRelation_ManyToOne< DataType, Owner > Class Template Reference

qx::QxSqlRelation_ManyToOne<DataType, Owner> : manage a relationship many-to-one defined between 2 classes (or between 2 tables in database) More...

#include <QxSqlRelation_ManyToOne.h>

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

Public Member Functions

 QxSqlRelation_ManyToOne (IxDataMember *p)
 
virtual ~QxSqlRelation_ManyToOne ()
 
virtual QString getDescription () const
 
virtual QString createExtraTable () const
 
virtual bool getCartesianProduct () const
 
virtual void lazyFrom (QxSqlRelationParams &params) const
 
virtual void eagerFrom (QxSqlRelationParams &params) const
 
virtual void lazyJoin (QxSqlRelationParams &params) const
 
virtual void lazyWhere (QxSqlRelationParams &params) const
 
virtual void eagerWhere (QxSqlRelationParams &params) const
 
virtual void lazyWhereSoftDelete (QxSqlRelationParams &params) const
 
virtual void lazyFetch_ResolveInput (QxSqlRelationParams &params) const
 
virtual void eagerFetch_ResolveInput (QxSqlRelationParams &params) const
 
virtual QSqlError onAfterSave (QxSqlRelationParams &params) const
 
virtual QSqlError onBeforeSave (QxSqlRelationParams &params) const
 
virtual void lazyUpdate_ResolveInput (QxSqlRelationParams &params) const
 
virtual QVariant getIdFromQuery (bool bEager, QxSqlRelationParams &params, int iOffset, int iNameIndex) const
 
virtual void updateOffset (bool bEager, QxSqlRelationParams &params) const
 
virtual void createTable (QxSqlRelationParams &params) const
 
virtual void lazySelect (QxSqlRelationParams &params) const
 
virtual void eagerSelect (QxSqlRelationParams &params) const
 
virtual void eagerJoin (QxSqlRelationParams &params) const
 
virtual void eagerWhereSoftDelete (QxSqlRelationParams &params) const
 
virtual void lazyFetch_ResolveOutput (QxSqlRelationParams &params) const
 
virtual void * eagerFetch_ResolveOutput (QxSqlRelationParams &params) const
 
virtual void lazyInsert (QxSqlRelationParams &params) const
 
virtual void lazyInsert_Values (QxSqlRelationParams &params) const
 
virtual void lazyUpdate (QxSqlRelationParams &params) const
 
virtual void lazyInsert_ResolveInput (QxSqlRelationParams &params) const
 
- Public Member Functions inherited from qx::QxSqlRelation< DataType, Owner >
 QxSqlRelation (IxDataMember *p)
 
virtual ~QxSqlRelation ()
 
virtual void init ()
 
- Public Member Functions inherited from qx::IxSqlRelation
 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
 
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
 

Private Types

typedef QxSqlRelation< DataType, Owner >::type_owner type_owner
 
typedef QxSqlRelation< DataType, Owner >::type_data type_data
 

Additional Inherited Members

- Public Types inherited from qx::IxSqlRelation
enum  relation_type {
  no_relation , one_to_one , one_to_many , many_to_one ,
  many_to_many
}
 
- Static Public Member Functions inherited from qx::IxSqlRelation
static void setTraceRelationInit (bool bTrace)
 
- Protected Types inherited from qx::QxSqlRelation< DataType, Owner >
enum  { is_valid = (qx::trait::is_qx_registered<type_data>::value && qx::trait::is_qx_registered<type_owner>::value) }
 
enum  { is_data_pointer = (std::is_pointer<DataType>::value || qx::trait::is_smart_ptr<DataType>::value) }
 
enum  { is_data_container = qx::trait::is_container<type_container>::value }
 
enum  { is_same_data_owner = std::is_same<type_data, type_owner>::value }
 
typedef qx::trait::remove_attr< DataType >::type type_tmp_1
 
typedef qx::trait::remove_smart_ptr< type_tmp_1 >::type type_tmp_2
 
typedef type_tmp_2 type_container
 
typedef qx::trait::generic_container< type_containertype_generic_container
 
typedef type_generic_container::type_item type_item
 
typedef std::conditional< qx::trait::is_container< type_container >::value, typenametype_generic_container::type_value_qx, type_container >::type type_tmp_3
 
typedef QxSqlRelation< DataType, Owner >::type_tmp_3 type_data
 
typedef Owner type_owner
 
- 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 Member Functions inherited from qx::QxSqlRelation< DataType, Owner >
DataType * getDataTypePtr (QxSqlRelationParams &params) const
 
type_ownergetOwner (QxSqlRelationParams &params) const
 
type_datagetData (QxSqlRelationParams &params) const
 
type_containergetContainer (QxSqlRelationParams &params) const
 
type_item createItem () const
 
bool isNullData (QxSqlRelationParams &params) const
 
bool callTriggerBeforeFetch (type_data &t, QxSqlRelationParams &params) const
 
bool callTriggerAfterFetch (type_data &t, QxSqlRelationParams &params) const
 
- Protected Member Functions inherited from qx::IxSqlRelation
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
 
- Protected Attributes inherited from qx::QxPropertyBag
type_hash_prop_bag_ptr m_lstPropertyBag
 List of all properties in the bag (meta-data)
 

Detailed Description

template<class DataType, class Owner>
class qx::QxSqlRelation_ManyToOne< DataType, Owner >

qx::QxSqlRelation_ManyToOne<DataType, Owner> : manage a relationship many-to-one defined between 2 classes (or between 2 tables in database)

Definition at line 55 of file QxSqlRelation_ManyToOne.h.

Member Typedef Documentation

◆ type_data

template<class DataType , class Owner >
typedef QxSqlRelation<DataType,Owner>::type_data qx::QxSqlRelation_ManyToOne< DataType, Owner >::type_data
private

Definition at line 61 of file QxSqlRelation_ManyToOne.h.

◆ type_owner

template<class DataType , class Owner >
typedef QxSqlRelation<DataType,Owner>::type_owner qx::QxSqlRelation_ManyToOne< DataType, Owner >::type_owner
private

Definition at line 60 of file QxSqlRelation_ManyToOne.h.

Constructor & Destructor Documentation

◆ QxSqlRelation_ManyToOne()

template<class DataType , class Owner >
qx::QxSqlRelation_ManyToOne< DataType, Owner >::QxSqlRelation_ManyToOne ( IxDataMember * p)
inline

Definition at line 65 of file QxSqlRelation_ManyToOne.h.

◆ ~QxSqlRelation_ManyToOne()

template<class DataType , class Owner >
virtual qx::QxSqlRelation_ManyToOne< DataType, Owner >::~QxSqlRelation_ManyToOne ( )
inlinevirtual

Definition at line 66 of file QxSqlRelation_ManyToOne.h.

Member Function Documentation

◆ createExtraTable()

template<class DataType , class Owner >
virtual QString qx::QxSqlRelation_ManyToOne< DataType, Owner >::createExtraTable ( ) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 69 of file QxSqlRelation_ManyToOne.h.

◆ createTable()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::createTable ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 96 of file QxSqlRelation_ManyToOne.h.

◆ eagerFetch_ResolveInput()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::eagerFetch_ResolveInput ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 78 of file QxSqlRelation_ManyToOne.h.

◆ eagerFetch_ResolveOutput()

template<class DataType , class Owner >
virtual void * qx::QxSqlRelation_ManyToOne< DataType, Owner >::eagerFetch_ResolveOutput ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 124 of file QxSqlRelation_ManyToOne.h.

◆ eagerFrom()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::eagerFrom ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 72 of file QxSqlRelation_ManyToOne.h.

◆ eagerJoin()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::eagerJoin ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 105 of file QxSqlRelation_ManyToOne.h.

◆ eagerSelect()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::eagerSelect ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 102 of file QxSqlRelation_ManyToOne.h.

◆ eagerWhere()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::eagerWhere ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 75 of file QxSqlRelation_ManyToOne.h.

◆ eagerWhereSoftDelete()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::eagerWhereSoftDelete ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 108 of file QxSqlRelation_ManyToOne.h.

◆ getCartesianProduct()

template<class DataType , class Owner >
virtual bool qx::QxSqlRelation_ManyToOne< DataType, Owner >::getCartesianProduct ( ) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 70 of file QxSqlRelation_ManyToOne.h.

◆ getDescription()

template<class DataType , class Owner >
virtual QString qx::QxSqlRelation_ManyToOne< DataType, Owner >::getDescription ( ) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 68 of file QxSqlRelation_ManyToOne.h.

◆ getIdFromQuery()

template<class DataType , class Owner >
virtual QVariant qx::QxSqlRelation_ManyToOne< DataType, Owner >::getIdFromQuery ( bool bEager,
QxSqlRelationParams & params,
int iOffset,
int iNameIndex ) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 90 of file QxSqlRelation_ManyToOne.h.

◆ lazyFetch_ResolveInput()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyFetch_ResolveInput ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 77 of file QxSqlRelation_ManyToOne.h.

◆ lazyFetch_ResolveOutput()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyFetch_ResolveOutput ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 111 of file QxSqlRelation_ManyToOne.h.

◆ lazyFrom()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyFrom ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 71 of file QxSqlRelation_ManyToOne.h.

◆ lazyInsert()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyInsert ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 173 of file QxSqlRelation_ManyToOne.h.

◆ lazyInsert_ResolveInput()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyInsert_ResolveInput ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 182 of file QxSqlRelation_ManyToOne.h.

◆ lazyInsert_Values()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyInsert_Values ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 176 of file QxSqlRelation_ManyToOne.h.

◆ lazyJoin()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyJoin ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 73 of file QxSqlRelation_ManyToOne.h.

◆ lazySelect()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazySelect ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 99 of file QxSqlRelation_ManyToOne.h.

◆ lazyUpdate()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyUpdate ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 179 of file QxSqlRelation_ManyToOne.h.

◆ lazyUpdate_ResolveInput()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyUpdate_ResolveInput ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 87 of file QxSqlRelation_ManyToOne.h.

◆ lazyWhere()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyWhere ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 74 of file QxSqlRelation_ManyToOne.h.

◆ lazyWhereSoftDelete()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::lazyWhereSoftDelete ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 76 of file QxSqlRelation_ManyToOne.h.

◆ onAfterSave()

template<class DataType , class Owner >
virtual QSqlError qx::QxSqlRelation_ManyToOne< DataType, Owner >::onAfterSave ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 79 of file QxSqlRelation_ManyToOne.h.

◆ onBeforeSave()

template<class DataType , class Owner >
virtual QSqlError qx::QxSqlRelation_ManyToOne< DataType, Owner >::onBeforeSave ( QxSqlRelationParams & params) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 81 of file QxSqlRelation_ManyToOne.h.

◆ updateOffset()

template<class DataType , class Owner >
virtual void qx::QxSqlRelation_ManyToOne< DataType, Owner >::updateOffset ( bool bEager,
QxSqlRelationParams & params ) const
inlinevirtual

Implements qx::IxSqlRelation.

Definition at line 93 of file QxSqlRelation_ManyToOne.h.


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