2012-03-01 79 views
0

我们使用NHibernate和Memcache作为二级缓存。偶尔需要更高级的查询或批量查询操作。从书中NHibernate的行动中,他们提出以下建议:。NHibernate,缓存和自定义SQL查询

“这是我们的观点,即ORM是不适合大规模更新(或质量删除)操作如果 你有一个用例这样的,不同的策略几乎总是更好:在数据库中调用已存储的 过程,或者使用特定用例的直接SQL UPDATE和DELETE语句。“

我的问题是,对底层数据库的查询不反映在缓存中(至少在缓存到期之前),我想知道是否有人提出了混合和匹配NHibernate和自定义SQL语句的有效策略?

有没有什么办法让批量更新语句(用自定义sql执行)反映在二级缓存中?我意识到可以手动驱逐,但这会从缓存中删除项目,因此会增加数据库命中率。

社区是否有解决方案已被发现有效处理这个问题?

+5

社区也将欣赏接受的答案.... – Jaguar 2012-03-01 15:59:47

回答