一个ColdFusion ORM的问题
过去 6 个月我们一直在使用 ColdFusion 9,虽然我们使用了一些新功能,但我们一直避免使用 ORM,因为我们通常在同一个非常大的网站上工作。多年来我们一直使用 Apache OBJ,但后来我们又回到 CF 并使用我们自己的从表生成的 DAO 对象来处理基本的 CRUD。这些对象是基本对象,需要针对模式更改手动重新生成,并且根本不对表关系建模。为了补充这些,我们有一组用于多表查询的网关类。虽然所有这些都是定制的,但是这些 DAO 和网关确实让我们能够很好地控制我们执行的 SQL,例如使用锁定提示和优化器提示。我们的网站很忙,但我们的数据库非常高效。
历史课就这么多:重点是我们即将推出一个新站点,该站点将从头开始编写以处理金融交易。我们通常会使用前面提到的 DAO 对象来处理 CRUD,然后是用于多表连接的常用网关对象集,但我认为我们可能会研究使用内置 CF ORM...
考虑到这一点,我很想听听其他人可能必须分享的关于在繁忙的金融网站上使用 ORM 的经验教训、提示和技巧。例如:
刷新 SQL 的最佳方法是什么?您对事务性 ORM 有什么建议?您如何为 ORM 设置开发和实时站点? HQL 呢?我们什么时候应该自己手动执行 SQL?!
提前致谢!
最佳答案
简短的回答,是的!选择 ORM!!!
刷新 SQL 的最佳方法是什么?
ormflush()
您对事务性 ORM 有什么建议?
<cftransaction>
或 transaction {}
在 CFScript 中工作正常,甚至可以跨 DSN 工作,在 9.0.1 中有了很大改进!看http://tv.adobe.com/watch/max-2010-develop/coldfusion-undocumented/
您如何为 ORM 设置开发和实时站点?
与没有 ORM 相同,但您可以查看 this.ormSettings.dbCreate
如果你指的是数据库创建部分
HQL 怎么样?
那怎么办? :) 当你想要一个对象数组时使用它,但没有什么能阻止你使用旧的 <cfquery>
我们什么时候应该自己手动执行 SQL?!
当您觉得 HQL 没有按照您的意愿行事时。
checkout :Things to watch out for in ColdFusion 9 with CF-ORM但是请记住,有些观点对于 9.0.1 不再适用
关于performance - ColdFusion ORM 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065414/