#include "Stroika/Foundation/StroikaPreComp.h"
#include <optional>
#include "Stroika/Foundation/Containers/Collection.h"
#include "Stroika/Foundation/Containers/Mapping.h"
#include "Stroika/Foundation/DataExchange/VariantValue.h"
#include "Schema.inl"
Go to the source code of this file.
Classes | |
struct | Stroika::Foundation::Database::SQL::ORM::Schema::Field |
Provide enough information about a field of a c++ VariantValue object to map it to a field in the SQL database. More... | |
Namespaces | |
namespace | Stroika::Foundation |
TODO
> Use virtual class with SharedByValue<> rep popinters to actual C++ objects, so C++-side objects all GC'd, and can be constructed by mapping layer.
> Avoid circular dependencies by having 'set' relationships managed by central object (or faked trough mtohod calls on smart object), but not throgh direct pointers (just ids).
> SharedByValue<> important, for update semantics - cuz core mapping layer can cache/store orig objects whcih can be copied, and then 'updated' by save operation.
> COULD autogenerate templates from SQL schema, but also can use user-provided ones to generate a schema, or 'hook up' and dynamcially gneerate runtime error of C++ template specification of related types doesn't match that read back from DB dynamically.
Definition in file Database/SQL/ORM/Schema.h.