TSts-grm

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 命名空间)。

主要选项(详见「驱动接入」):

选项默认说明
strategyspi.UPPER_SNAKE_CASE_DATABASE_NAMING_STRATEGY命名策略
defaultBatchSize / defaultListBatchSize128 / 16批加载上限
maxJoinFetchDepth / maxJoinFetchOffset5 / 0join 取形限制
sqlLogger{ pretty: false, parameter: "PLACEHOLDER" }日志(COMMENT/INLINE 可选)
filterManager / entityManager过滤器 / 模型发现
isUnorderedPaginationDisabledfalse无序分页控制
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/sql 0.0.x 适配;发版后对照 docs/upstream-issues.md 核销已知缺陷;
  • 保存/Input DTO 相关 API 以「变更 API」章为准(设计预览)。