sql 快速参考
@ts-grm/sql 提供驱动、执行、事务与模式创建。
newSqlClient
newSqlClient(driver, options): SqlClient
驱动:SqliteDriver(DB)、PostgresDriver(pool)、MySqlDriver(pool)、OracleDriver / Oracle12Drivier(pool)、SqlServerDriver / SqlServer2012Driver(pool)(均来自 @ts-grm/sql 顶层或 transaction 命名空间)。
主要选项(详见「驱动接入」):
| 选项 | 默认 | 说明 |
|---|---|---|
strategy | spi.UPPER_SNAKE_CASE_DATABASE_NAMING_STRATEGY | 命名策略 |
defaultBatchSize / defaultListBatchSize | 128 / 16 | 批加载上限 |
maxJoinFetchDepth / maxJoinFetchOffset | 5 / 0 | join 取形限制 |
sqlLogger | { pretty: false, parameter: "PLACEHOLDER" } | 日志(COMMENT/INLINE 可选) |
filterManager / entityManager | — | 过滤器 / 模型发现 |
isUnorderedPaginationDisabled | false | 无序分页控制 |
executorCreator | 恒等 | 事务执行器包装 |
SqlClient 方法
| 方法 | 用途 |
|---|---|
findOne / findOneOrNull / findOneOrUndefined(view, criteria) | 便捷单行查询 |
findMany(view, options) / findRange / findPage | 批量查询 |
createQuery(model, cb) | 命令式查询(返回查询对象) |
execute(...) | 事务(传播/隔离/超时,见「事务」) |
save(input, obj, options?) | 变更 API(上游尚未实现,见「变更 API」章) |
createSchema() | 生成建表/删表 DDL(沙盒内勿 execute) |
查询对象收尾:fetchList / fetchRequired / fetchOptional / fetchPage / fetchRange / fetchCount(无 fetchOne)。
事务
execute(fn) // REQUIRED
execute(propagation, fn) // 6 传播级别
execute(isolation, fn) // 4 隔离级别
execute({propagation, isolation, timeout(ms)}, fn)
工具
FilterManager(过滤器类型与注册);sqlerr(@ts-grm/sql错误族);spi命名空间:驱动/执行层 SPI(一般用于扩展层)。
版本适配说明
- 本文按
@ts-grm/core/@ts-grm/sql0.0.x 适配;发版后对照docs/upstream-issues.md核销已知缺陷; - 保存/Input DTO 相关 API 以「变更 API」章为准(设计预览)。