我有一个IPostInsertEventListener,它执行一个NHibernate查询,而这个查询由于某种原因导致对同一个IPostInsertEventListener的新调用,最终导致StackOverflowException。
从IPostInsertEventListener执行NHibernate查询是不是很糟糕(我可以选择在创建监听器时预加载和缓存数据)?
为什么查询会触发插入后事件?
答案 0 :(得分:1)
如果您在休眠状态下问我,这似乎是一个错误。自从我们使用thread_static
会话上下文以来,我们所做的“修复”操作是在单独的线程中执行诸如IPostInsertEventListener
之类的事物的实现中的逻辑,以便它将利用不同的{{ 1}}来避免该问题。