ModelOperations

Trait ModelOperations 

Source
pub trait ModelOperations<T: Model> {
Show 15 methods // Required methods fn save<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QuickDbResult<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_id<'life0, 'async_trait>( id: &'life0 str, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Option<T>>> + Send + 'async_trait>> where 'life0: 'async_trait; fn find_with_cache_control<'async_trait>( conditions: Vec<QueryCondition>, options: Option<QueryOptions>, bypass_cache: bool, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>>; fn update<'life0, 'async_trait>( &'life0 self, updates: HashMap<String, DataValue>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn delete<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QuickDbResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count<'async_trait>( conditions: Vec<QueryCondition>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>; fn find_with_groups_with_cache_control<'async_trait>( condition_groups: Vec<QueryConditionGroup>, options: Option<QueryOptions>, bypass_cache: bool, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>>; fn update_many<'async_trait>( conditions: Vec<QueryCondition>, updates: HashMap<String, DataValue>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>; fn update_many_with_operations<'async_trait>( conditions: Vec<QueryCondition>, operations: Vec<UpdateOperation>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>; fn delete_many<'async_trait>( conditions: Vec<QueryCondition>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>; fn create_table<'async_trait>( ) -> Pin<Box<dyn Future<Output = QuickDbResult<()>> + Send + 'async_trait>>; fn create_stored_procedure<'async_trait>( config: StoredProcedureConfig, ) -> Pin<Box<dyn Future<Output = QuickDbResult<StoredProcedureCreateResult>> + Send + 'async_trait>>; fn execute_stored_procedure<'life0, 'async_trait>( procedure_name: &'life0 str, params: Option<HashMap<String, DataValue>>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<StoredProcedureQueryResult>> + Send + 'async_trait>> where 'life0: 'async_trait; // Provided methods fn find<'async_trait>( conditions: Vec<QueryCondition>, options: Option<QueryOptions>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>> where Self: Send + 'async_trait { ... } fn find_with_groups<'async_trait>( condition_groups: Vec<QueryConditionGroup>, options: Option<QueryOptions>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>> where Self: Send + 'async_trait { ... }
}
Expand description

记录操作特征

提供记录的CRUD操作

Required Methods§

Source

fn save<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QuickDbResult<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

保存记录

Source

fn find_by_id<'life0, 'async_trait>( id: &'life0 str, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Option<T>>> + Send + 'async_trait>>
where 'life0: 'async_trait,

根据ID查找记录

Source

fn find_with_cache_control<'async_trait>( conditions: Vec<QueryCondition>, options: Option<QueryOptions>, bypass_cache: bool, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>>

查找多条记录(支持缓存控制)

Source

fn update<'life0, 'async_trait>( &'life0 self, updates: HashMap<String, DataValue>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

更新记录

Source

fn delete<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = QuickDbResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

删除记录

Source

fn count<'async_trait>( conditions: Vec<QueryCondition>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>

统计记录数量

Source

fn find_with_groups_with_cache_control<'async_trait>( condition_groups: Vec<QueryConditionGroup>, options: Option<QueryOptions>, bypass_cache: bool, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>>

使用条件组查找多条记录(支持缓存控制和复杂的AND/OR逻辑组合)

Source

fn update_many<'async_trait>( conditions: Vec<QueryCondition>, updates: HashMap<String, DataValue>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>

批量更新记录

根据条件批量更新多条记录,返回受影响的行数

Source

fn update_many_with_operations<'async_trait>( conditions: Vec<QueryCondition>, operations: Vec<UpdateOperation>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>

使用操作数组批量更新模型

根据条件使用操作数组批量更新多条记录,支持原子性增减操作,返回受影响的行数

Source

fn delete_many<'async_trait>( conditions: Vec<QueryCondition>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>

批量删除模型

根据条件批量删除多条记录,返回受影响的行数

Source

fn create_table<'async_trait>() -> Pin<Box<dyn Future<Output = QuickDbResult<()>> + Send + 'async_trait>>

创建表

使用模型的元数据直接创建表,无需插入数据

Source

fn create_stored_procedure<'async_trait>( config: StoredProcedureConfig, ) -> Pin<Box<dyn Future<Output = QuickDbResult<StoredProcedureCreateResult>> + Send + 'async_trait>>

创建存储过程

通过模型管理器创建跨模型的存储过程,以当前模型作为基表

Source

fn execute_stored_procedure<'life0, 'async_trait>( procedure_name: &'life0 str, params: Option<HashMap<String, DataValue>>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<StoredProcedureQueryResult>> + Send + 'async_trait>>
where 'life0: 'async_trait,

执行存储过程查询

通过模型管理器执行存储过程查询,使用当前模型的数据库别名

Provided Methods§

Source

fn find<'async_trait>( conditions: Vec<QueryCondition>, options: Option<QueryOptions>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>>
where Self: Send + 'async_trait,

查找多条记录

Source

fn find_with_groups<'async_trait>( condition_groups: Vec<QueryConditionGroup>, options: Option<QueryOptions>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>>
where Self: Send + 'async_trait,

使用条件组查找多条记录(支持复杂的AND/OR逻辑组合)

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.

Implementors§