我刚刚开始了解 ColdFusion ORM 和持久 cfcs 以及它如何提高应用程序性能。在尝试在我自己的网站上实施任何东西之前,我仍在努力获得全面的理解,但是有一个问题我似乎无法在任何地方找到答案。
我知道大部分性能提升来自于在页面末尾的单个事务中批处理数据库 CRUD,以及来自 select 语句的智能缓存。关于后者,这种缓存是如何工作的,更具体地说,它如何处理在 ColdFusion 应用程序之外所做的更改。
例如,假设我有一个如下所示的用户表:
名称 头发
尼克布朗
约翰金发
现在假设我通过 PL/SQL Developer 运行一个简单的更新查询来将 John 的头发颜色更新为黑色。现在...
- 下次页面尝试列出约翰的头发颜色时会发生什么?
- 假设头发颜色仍然显示为金发,因为它已被缓存,如何刷新该缓存?
- 假设头发颜色仍然缓存为金发,如果我使用 CF ORM 将 John 的名字更改为 Jonathon,会发生什么?它会在更新行时将头发颜色覆盖回金发吗?
- 同样,如果我尝试使用 CF ORM 将头发颜色更新为绿色怎么办?CF 会检查并注意到它的缓存值(金色)不再是当前值(黑色)并给出某种反馈吗?
同样重要(也许更重要),如果使用 CFQuery 而不是外部程序来更新 John 的头发颜色,那么这些相同问题的答案是什么。换句话说,CFQuery 可以安全地用于 ORM 托管表吗?
我尝试查看 CF 的文档、Hibernate 的文档和各种在线博客,但缺少有关 ORM 缓存以及它如何与其他数据库操作方法(CFQuery、PL/SQL Developer 等)交互的信息。任何帮助,将不胜感激。
谢谢。