Windpicker-owo
32a94ab105
feat: 实现方案A - 缓存字典而非SQLAlchemy对象
核心改进:
- 添加 _model_to_dict() 和 _dict_to_model() 辅助函数
- CRUD.get/get_by/get_multi 现在缓存字典而非对象
- QueryBuilder.first/all 现在缓存字典而非对象
- 从缓存恢复时重建detached对象,所有字段已加载
优势:
- 彻底避免'not bound to Session'错误
- 缓存数据独立于Session生命周期
- 对象反序列化后所有字段可直接访问
- 提高缓存可靠性和数据可用性
技术细节:
- 缓存层存储纯字典数据(可序列化)
- 查询时在session内预加载所有列
- 返回前转换为字典并缓存
- 缓存命中时从字典重建对象
- 重建的对象虽然detached但所有字段已填充
2025-11-19 23:31:13 +08:00
..
2025-11-19 23:30:21 +08:00
2025-11-19 23:31:13 +08:00
2025-11-19 23:13:20 +08:00
2025-11-19 23:25:26 +08:00
2025-03-19 20:27:34 +09:00
2025-11-19 23:30:51 +08:00
2025-11-19 23:13:20 +08:00
2025-11-19 23:30:26 +08:00
2025-11-19 23:30:51 +08:00
2025-11-19 23:13:20 +08:00
2025-11-19 23:22:47 +08:00
2025-11-19 23:13:20 +08:00