|
Lightweight 0.20261105.1
|
Represents a one-to-one relationship through a join table. More...
#include <HasOneThrough.hpp>
Classes | |
| struct | Loader |
| Carries the deferred load, installed by the DataMapper. More... | |
Public Types | |
| using | ThroughRecord = ThroughRecordOf< ThroughSpec > |
| The record type of the "through" side of the relationship. | |
| using | ReferencedRecord = OtherTable |
| The record type of the "Other" side of the relationship. | |
Public Member Functions | |
| LIGHTWEIGHT_FORCE_INLINE constexpr void | EmplaceRecord (std::shared_ptr< ReferencedRecord > record) |
| Emplaces the given record into this relationship. | |
| LIGHTWEIGHT_FORCE_INLINE RelationResult< std::reference_wrapper< ReferencedRecord > > | Record () |
| Retrieves the record in this relationship, loading it on first access. | |
| LIGHTWEIGHT_FORCE_INLINE RelationResult< std::reference_wrapper< ReferencedRecord const > > | Record () const |
| Retrieves the record in this relationship, loading it on first access. | |
| LIGHTWEIGHT_FORCE_INLINE constexpr bool | IsLoaded () const noexcept |
| Checks if the record is loaded. | |
| LIGHTWEIGHT_FORCE_INLINE void | Unload () noexcept |
| Unloads the record from memory, so the next access loads it again. | |
| LIGHTWEIGHT_FORCE_INLINE ReferencedRecord & | operator* () |
| Retrieves the record in this relationship, loading it on first access. | |
| LIGHTWEIGHT_FORCE_INLINE ReferencedRecord const & | operator* () const |
| Retrieves the record in this relationship, loading it on first access. | |
| LIGHTWEIGHT_FORCE_INLINE ReferencedRecord * | operator-> () |
| Retrieves the record in this relationship, loading it on first access. | |
| LIGHTWEIGHT_FORCE_INLINE ReferencedRecord const * | operator-> () const |
| Retrieves the record in this relationship, loading it on first access. | |
| std::weak_ordering | operator<=> (HasOneThrough const &other) const noexcept=default |
| Default three-way comparison operator. | |
| void | SetAutoLoader (Loader loader) |
| Used internally to configure on-demand loading of the record. | |
Static Public Attributes | |
| static constexpr auto | OwnerSelector = TheOwnerSelector |
| Singles out the join record's foreign key pointing at the record owning this relationship. | |
| static constexpr auto | ThroughSelector = TheThroughSelector |
| Singles out ReferencedRecord's foreign key pointing at ThroughRecord. | |
Represents a one-to-one relationship through a join table.
The OtherTable parameter is the record reached through the join table. The ThroughSpec parameter is the join table, which references the current record. It is named with the Through marker, so that the reader can tell it apart from the referenced record:
Both foreign keys are located by matching the relationship type. When either record holds more than one foreign key into the same table, name the column to single one out - see the RelationSelector concept and the example on HasManyThrough.
| OtherTable | The record type reached through the join table. |
| ThroughSpec | The join record, wrapped as Through<T>. Naming the record bare is deprecated. |
| TheOwnerSelector | Singles out the join record's foreign key pointing at the owning record. |
| TheThroughSelector | Singles out OtherTable's foreign key pointing at the join record. |
Definition at line 50 of file HasOneThrough.hpp.
| using Lightweight::HasOneThrough< OtherTable, ThroughSpec, TheOwnerSelector, TheThroughSelector >::ThroughRecord = ThroughRecordOf<ThroughSpec> |
The record type of the "through" side of the relationship.
Definition at line 62 of file HasOneThrough.hpp.
| using Lightweight::HasOneThrough< OtherTable, ThroughSpec, TheOwnerSelector, TheThroughSelector >::ReferencedRecord = OtherTable |
The record type of the "Other" side of the relationship.
Definition at line 65 of file HasOneThrough.hpp.
|
inlineconstexpr |
Emplaces the given record into this relationship.
Definition at line 74 of file HasOneThrough.hpp.
|
inline |
Retrieves the record in this relationship, loading it on first access.
Never throws for an unavailable record: the reason comes back as the error instead.
loadRelations = false), RelationError::Outdated when the default connection string changed since the record was read, RelationError::QueryFailed when the load query failed. Definition at line 89 of file HasOneThrough.hpp.
|
inline |
Retrieves the record in this relationship, loading it on first access.
Never throws for an unavailable record: the reason comes back as the error instead.
loadRelations = false), RelationError::Outdated when the default connection string changed since the record was read, RelationError::QueryFailed when the load query failed. Definition at line 95 of file HasOneThrough.hpp.
|
inlineconstexprnoexcept |
Checks if the record is loaded.
Definition at line 101 of file HasOneThrough.hpp.
|
inlinenoexcept |
Unloads the record from memory, so the next access loads it again.
Definition at line 107 of file HasOneThrough.hpp.
|
inline |
Retrieves the record in this relationship, loading it on first access.
| SqlRequireLoadedError | The record is unavailable; Record() reports why without throwing. |
Definition at line 115 of file HasOneThrough.hpp.
|
inline |
Retrieves the record in this relationship, loading it on first access.
| SqlRequireLoadedError | The record is unavailable; Record() reports why without throwing. |
Definition at line 122 of file HasOneThrough.hpp.
|
inline |
Retrieves the record in this relationship, loading it on first access.
| SqlRequireLoadedError | The record is unavailable; Record() reports why without throwing. |
Definition at line 130 of file HasOneThrough.hpp.
|
inline |
Retrieves the record in this relationship, loading it on first access.
| SqlRequireLoadedError | The record is unavailable; Record() reports why without throwing. |
Definition at line 137 of file HasOneThrough.hpp.
|
inline |
Used internally to configure on-demand loading of the record.
Definition at line 154 of file HasOneThrough.hpp.
|
staticconstexpr |
Singles out the join record's foreign key pointing at the record owning this relationship.
Definition at line 68 of file HasOneThrough.hpp.
|
staticconstexpr |
Singles out ReferencedRecord's foreign key pointing at ThroughRecord.
Definition at line 71 of file HasOneThrough.hpp.