读 banq的帖子Domain Events异步应用 有疑惑
看了这个帖子 http://www.jdon.com/jivejdon/thread/37712/15,深受启发。
因为我也正好碰到这个问题。比如一堆分类,每个分类需要统计其下Product的数量。
这是我的回帖:
但是我有疑问,如果使用Hibernate,没法对二级缓存直接进行修改,我即便是更改了内存的值,比如messageCount改成1,下次从二级缓存取,仍然是-1。
不知有没有什么解决方案。请教banq。
我仔细研究了一下Hibernate的二级缓存,跟了源码。
Hibernate其实还是面向数据库的。而且其二级缓存存储的对象都是数组结构,并不是真正的对象。大量使用二级缓存后,看上去有点NoSQL的意思,其实本质上不是。我们无法修改其二级缓存中对象状态,如果要修改,那么必须同步数据库了。Hibernate还是以数据库为中心的东西,只是一个ORM,很牵强的一个东西。
我想到了直接做业务层缓存,在Entity基础上套一层Model,面向对象的Model做业务层缓存,面向表的Hibernate Entity做二级缓存,但这样的方案似乎太重了。
我们现在主要使用spring3+spring3mvc+hibernate框架结合开发,大量用了ehcache做缓存和二级缓存,在这种组合下,我们如何实现Domain Events呢?
请教banq以及论坛各位高手。
现在很多公司都是struts2+spring+hibernate或springmvc hibernate或类似这种组合,本论坛貌似很少介绍在这种组合下的Domain Model设计,能否介绍多些,毕竟我们很多人思路一下转不过来,国内软件环境即是如此,适应起来有点慢,呵呵,只是建议。希望能多多向大家学习。
[该贴被fnet于2011-04-20 16:03修改过]