|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
泛型 Repository 更多...
#include <repository.hpp>
Public 成员函数 | |
| repository (Connect &conn) noexcept | |
| 构造函数 | |
| Connect & | connection () noexcept |
| 获取内部连接引用 | |
| bool | create_table (string_view table_override="") |
| 创建数据库表 | |
| bool | drop_table (string_view table_override="") |
| 删除数据库表 | |
| unique_ptr< T > | find_by_id (const reflect::meta_any &id) |
| 按主键查找实体 | |
| vector< T > | find_all () |
| 查询全部实体 | |
| vector< T > | find_where (const string &where_clause) |
| 按 WHERE 条件查询实体 | |
| vector< T > | find_page (const size_t page_num, const size_t page_size, string_view order_by="") |
| 分页查询实体 | |
| bool | insert (T &entity) |
| 插入实体 | |
| bool | update (const T &entity) |
| 更新实体(按主键) | |
| bool | remove (const T &entity) |
| 删除实体(按主键) | |
| size_t | count () |
| 获取实体总数 | |
| bool | table_exists () |
| 检查表是否存在 | |
泛型 Repository
| T | 实体类型(需已通过反射注册) |
| Connect | 连接类型,默认为 idb_tb_connect |
封装常见的数据访问操作,通过 sql_mapper 自动生成 SQL。
在文件 repository.hpp 第 47 行定义.
|
inlineexplicitnoexcept |
|
inlinenodiscardnoexcept |
|
inline |
获取实体总数
在文件 repository.hpp 第 325 行定义.
引用了 neforce::sql_builder::build(), neforce::sql_builder::from(), neforce::sql_builder::select_count() , 以及 neforce::sql_mapper< T >::table_name().
|
inline |
|
inline |
|
inline |
查询全部实体
在文件 repository.hpp 第 218 行定义.
引用了 neforce::sql_builder::build(), neforce::sql_builder::from(), neforce::sql_mapper< T >::from_result(), neforce::reflect::registry::instance(), neforce::move(), neforce::sql_builder::select(), neforce::sql_mapper< T >::table_name() , 以及 neforce::reflect::type_id_for().
|
inline |
按主键查找实体
| id | 主键值(包装为 meta_any) |
在文件 repository.hpp 第 177 行定义.
引用了 neforce::sql_builder::build(), neforce::sql_builder::from(), neforce::sql_mapper< T >::from_row(), neforce::reflect::registry::instance(), neforce::make_unique(), neforce::meta_any_to_sql_literal(), neforce::reflect::meta_property::name(), neforce::sql_builder::select(), neforce::sql_mapper< T >::table_name(), neforce::reflect::type_id_for() , 以及 neforce::sql_builder::where_eq().
|
inline |
分页查询实体
| page_num | 页码(从 1 开始) |
| page_size | 每页大小 |
| order_by | 排序字段(为空则不排序) |
在文件 repository.hpp 第 265 行定义.
引用了 neforce::sql_builder::build(), neforce::sql_builder::from(), neforce::sql_mapper< T >::from_result(), neforce::reflect::registry::instance(), neforce::move(), neforce::sql_builder::order_by_asc(), neforce::sql_builder::page(), neforce::sql_builder::select(), neforce::sql_mapper< T >::table_name() , 以及 neforce::reflect::type_id_for().
|
inline |
按 WHERE 条件查询实体
| where_clause | 原始 WHERE 子句(不含 "WHERE" 关键字) |
在文件 repository.hpp 第 240 行定义.
引用了 neforce::sql_builder::build(), neforce::sql_builder::from(), neforce::sql_mapper< T >::from_result(), neforce::reflect::registry::instance(), neforce::move(), neforce::sql_builder::select(), neforce::sql_mapper< T >::table_name(), neforce::reflect::type_id_for() , 以及 neforce::sql_builder::where().
|
inline |
插入实体
| entity | 实体对象 |
在文件 repository.hpp 第 296 行定义.
|
inline |
|
inline |
|
inline |