Manager & helpers SeaORM
SeaORM + Objects Manager
Runique utilise SeaORM avec un manager Django-like via la macro impl_objects!.
La macro est générée automatiquement par le daemon dans chaque fichier d'entité (runique makemigrations). Aucune déclaration manuelle nécessaire.
Note :
impl_objects!est du sucre syntaxique pur. Elle ne modifie pas les requêtes générées — le SQL produit est identique à du SeaORM natif.
use demo_app::entities::users;
// Récupérer tous les users
let all_users = users::Entity::objects
.all()
.all(&*db)
.await?;
// Avec filtre
let active_users = users::Entity::objects
.filter(users::Column::Active.eq(true))
.all(&*db)
.await?;
// Un seul résultat
let user = users::Entity::objects
.filter(users::Column::Id.eq(user_id))
.first(&*db)
.await?;
Sans macro (SeaORM natif)
// Tous les enregistrements
let all_users = users::Entity::find().all(&*db).await?;
// Avec filtre
let active_users = users::Entity::find()
.filter(users::Column::Active.eq(true))
.all(&*db)
.await?;
// Un seul résultat par ID
let user = users::Entity::find_by_id(user_id)
.one(&*db)
.await?;
Helpers disponibles
all(): point d'entrée pour chaînerfilter,order_by_asc/desc,limit,offset.filter(...)/exclude(...): ajoutent des conditions.first(db)/count(db): exécutent la requête.get(db, id)/get_optional(db, id): accès direct par clé primaire.get_or_404(db, ctx, msg): retourne une réponse 404/500 avec rendu Tera si manquant.