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§
Sourcefn save<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = QuickDbResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn save<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = QuickDbResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
保存记录
Sourcefn 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_by_id<'life0, 'async_trait>(
id: &'life0 str,
) -> Pin<Box<dyn Future<Output = QuickDbResult<Option<T>>> + Send + 'async_trait>>where
'life0: 'async_trait,
根据ID查找记录
Sourcefn 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 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>>
查找多条记录(支持缓存控制)
Sourcefn 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 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,
更新记录
Sourcefn delete<'life0, 'async_trait>(
&'life0 self,
) -> 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,
删除记录
Sourcefn count<'async_trait>(
conditions: Vec<QueryCondition>,
) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>
fn count<'async_trait>( conditions: Vec<QueryCondition>, ) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + Send + 'async_trait>>
统计记录数量
Sourcefn 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 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逻辑组合)
Sourcefn update_many<'async_trait>(
conditions: Vec<QueryCondition>,
updates: HashMap<String, DataValue>,
) -> Pin<Box<dyn Future<Output = QuickDbResult<u64>> + 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>>
批量更新记录
根据条件批量更新多条记录,返回受影响的行数
Sourcefn update_many_with_operations<'async_trait>(
conditions: Vec<QueryCondition>,
operations: Vec<UpdateOperation>,
) -> 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>>
使用操作数组批量更新模型
根据条件使用操作数组批量更新多条记录,支持原子性增减操作,返回受影响的行数
Sourcefn delete_many<'async_trait>(
conditions: Vec<QueryCondition>,
) -> 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>>
批量删除模型
根据条件批量删除多条记录,返回受影响的行数
Sourcefn create_table<'async_trait>() -> Pin<Box<dyn Future<Output = QuickDbResult<()>> + Send + 'async_trait>>
fn create_table<'async_trait>() -> Pin<Box<dyn Future<Output = QuickDbResult<()>> + Send + 'async_trait>>
创建表
使用模型的元数据直接创建表,无需插入数据
Sourcefn create_stored_procedure<'async_trait>(
config: StoredProcedureConfig,
) -> Pin<Box<dyn Future<Output = QuickDbResult<StoredProcedureCreateResult>> + Send + 'async_trait>>
fn create_stored_procedure<'async_trait>( config: StoredProcedureConfig, ) -> Pin<Box<dyn Future<Output = QuickDbResult<StoredProcedureCreateResult>> + Send + 'async_trait>>
创建存储过程
通过模型管理器创建跨模型的存储过程,以当前模型作为基表
Sourcefn 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,
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§
Sourcefn 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<'async_trait>(
conditions: Vec<QueryCondition>,
options: Option<QueryOptions>,
) -> Pin<Box<dyn Future<Output = QuickDbResult<Vec<T>>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
查找多条记录
Sourcefn 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,
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.