#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.