ORM C++
Loading...
Searching...
No Matches
orm::ManyToManyDescriptor< Member, MappedByMember, MappedByName, ThroughTable, OwnerColumnNames, TargetColumnNames > Struct Template Reference

Typed many-to-many mapping and its compile-time builder. More...

#include <relations.hpp>

Public Types

using OwnerColumns = OwnerColumnNames
using TargetColumns = TargetColumnNames

Public Member Functions

template<reflection::FixedString TableName>
consteval auto through () const -> ManyToManyDescriptor< Member, MappedByMember, MappedByName, TableName, OwnerColumnNames, TargetColumnNames >
template<auto TargetMember>
requires std::is_member_object_pointer_v<decltype(TargetMember)>
consteval auto mappedBy () const -> ManyToManyDescriptor< Member, TargetMember, detail::emptyRelationName, ThroughTable, OwnerColumnNames, TargetColumnNames >
template<reflection::FixedString TargetField>
consteval auto mappedBy () const -> ManyToManyDescriptor< Member, nullptr, TargetField, ThroughTable, OwnerColumnNames, TargetColumnNames >
template<reflection::FixedString... Names>
consteval auto ownerColumns () const -> ManyToManyDescriptor< Member, MappedByMember, MappedByName, ThroughTable, detail::RelationColumnNames< Names... >, TargetColumnNames >
template<reflection::FixedString... Names>
consteval auto targetColumns () const -> ManyToManyDescriptor< Member, MappedByMember, MappedByName, ThroughTable, OwnerColumnNames, detail::RelationColumnNames< Names... > >

Static Public Attributes

static constexpr auto member = Member
static constexpr auto mappedByMember = MappedByMember
static constexpr auto mappedByName = MappedByName
static constexpr auto throughTable = ThroughTable

Detailed Description

template<auto Member, auto MappedByMember = nullptr, reflection::FixedString MappedByName = detail::emptyRelationName, reflection::FixedString ThroughTable = detail::emptyRelationName, typename OwnerColumnNames = detail::RelationColumnNames<>, typename TargetColumnNames = detail::RelationColumnNames<>>
requires std::is_member_object_pointer_v<decltype(Member)>
struct orm::ManyToManyDescriptor< Member, MappedByMember, MappedByName, ThroughTable, OwnerColumnNames, TargetColumnNames >

Typed many-to-many mapping and its compile-time builder.


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