Basic Functionality
Last updated
Last updated
Before starting with the ORM, it is highly recommended to familiar one's self with package:angel_serialize
, as it is the foundation for package:angel_orm
:
To enable the ORM for a given model, simply add the @orm
annotation to its definition:
The generator will produce a TodoQuery
class, which contains fields corresponding to each field declared in _Todo
. Each of TodoQuery
's fields is a subclass of SqlExpressionBuilder
, corresponding to the given type. For example, TodoQuery
would look something like:
Thus, you can query the database using plain-old-Dart-objects (PODO's):
The glue holding everything together is the QueryExecutor
interface. To support the ORM for any arbitrary database, simply extend the class and implement its abstract methods.
At the time of this writing, there is only support for PostgreSQL, though more databases may be added eventually.
Consumers of a QueryExecutor
typically inject it into the app's container: