【发布时间】:2012-03-01 15:39:00
【问题描述】:
我们使用 NHibernate 和 Memcache 作为二级缓存。有时需要更高级的查询或批量查询操作。从 Nhibernate in Action 一书中,他们推荐了以下内容:
“我们认为 ORM 不适合批量更新(或批量删除)操作。如果 您有这样的用例,不同的策略几乎总是更好:调用存储的 数据库中的过程,或为此使用直接 SQL UPDATE 和 DELETE 语句 特定用例。”
我担心对底层数据库的查询不会反映在缓存中(至少在缓存到期之前),我想知道是否有人提出了任何有效的策略来混合和匹配 NHibernate 与自定义 SQL 语句?
有没有办法让批量更新语句(使用自定义 sql 执行)反映在二级缓存中?我知道可以手动驱逐,但这会从缓存中删除项目,因此会增加数据库的命中率。
社区是否有任何已发现有效解决此问题的解决方案?
【问题讨论】:
-
社区也希望得到接受的答案......
标签: nhibernate