sea_orm::query

Trait LoaderTrait

Source
pub trait LoaderTrait {
    type Model: ModelTrait;

    // Required methods
    fn load_one<'life0, 'life1, 'async_trait, R, S, C>(
        &'life0 self,
        stmt: S,
        db: &'life1 C,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<R::Model>>, DbErr>> + Send + 'async_trait>>
       where C: ConnectionTrait + 'async_trait,
             R: EntityTrait + 'async_trait,
             R::Model: Send + Sync,
             S: EntityOrSelect<R> + 'async_trait,
             <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>,
             Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn load_many<'life0, 'life1, 'async_trait, R, S, C>(
        &'life0 self,
        stmt: S,
        db: &'life1 C,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
       where C: ConnectionTrait + 'async_trait,
             R: EntityTrait + 'async_trait,
             R::Model: Send + Sync,
             S: EntityOrSelect<R> + 'async_trait,
             <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>,
             Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn load_many_to_many<'life0, 'life1, 'async_trait, R, S, V, C>(
        &'life0 self,
        stmt: S,
        via: V,
        db: &'life1 C,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
       where C: ConnectionTrait + 'async_trait,
             R: EntityTrait + 'async_trait,
             R::Model: Send + Sync,
             S: EntityOrSelect<R> + 'async_trait,
             V: EntityTrait + 'async_trait,
             V::Model: Send + Sync,
             <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>,
             Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

This trait implements the Data Loader API

Required Associated Typesยง

Source

type Model: ModelTrait

Source model

Required Methodsยง

Source

fn load_one<'life0, 'life1, 'async_trait, R, S, C>( &'life0 self, stmt: S, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Used to eager load has_one relations

Source

fn load_many<'life0, 'life1, 'async_trait, R, S, C>( &'life0 self, stmt: S, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Used to eager load has_many relations

Source

fn load_many_to_many<'life0, 'life1, 'async_trait, R, S, V, C>( &'life0 self, stmt: S, via: V, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, V: EntityTrait + 'async_trait, V::Model: Send + Sync, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Used to eager load many_to_many relations

Dyn Compatibilityยง

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Typesยง

Sourceยง

impl<M> LoaderTrait for &[M]
where M: ModelTrait + Sync,

Sourceยง

type Model = M

Sourceยง

fn load_one<'life0, 'life1, 'async_trait, R, S, C>( &'life0 self, stmt: S, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sourceยง

fn load_many<'life0, 'life1, 'async_trait, R, S, C>( &'life0 self, stmt: S, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sourceยง

fn load_many_to_many<'life0, 'life1, 'async_trait, R, S, V, C>( &'life0 self, stmt: S, via: V, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, V: EntityTrait + 'async_trait, V::Model: Send + Sync, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sourceยง

impl<M> LoaderTrait for Vec<M>
where M: ModelTrait + Sync,

Sourceยง

type Model = M

Sourceยง

fn load_one<'life0, 'life1, 'async_trait, R, S, C>( &'life0 self, stmt: S, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sourceยง

fn load_many<'life0, 'life1, 'async_trait, R, S, C>( &'life0 self, stmt: S, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sourceยง

fn load_many_to_many<'life0, 'life1, 'async_trait, R, S, V, C>( &'life0 self, stmt: S, via: V, db: &'life1 C, ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<R::Model>>, DbErr>> + Send + 'async_trait>>
where C: ConnectionTrait + 'async_trait, R: EntityTrait + 'async_trait, R::Model: Send + Sync, S: EntityOrSelect<R> + 'async_trait, V: EntityTrait + 'async_trait, V::Model: Send + Sync, <<Self as LoaderTrait>::Model as ModelTrait>::Entity: Related<R>, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Implementorsยง