hibernate依靠缓存提高性能我非常喜欢。但对其详细机制不是很了解,结合我现在涉及的项目来讲,现在我们的项目同时运行两套系统,一个是我们基于J2EE的B/S系统,用于客户访问,为用户提供服务。另一个是后台核心业务系统,有C/C++实现并为我们这套系统提供接口。我们两套系统都会操作数据库,假如我们采用hibernate,缓存中维护这一些数据,而此时后台C/C++系统修改了数据库中的数据,hibernate缓存中的数据汇同步更新吗?如果不更新,那将是很危险的事情啊。 如果采用ibatis呢,那也用缓存机制,是不是一样危险啊? 请教各位高手 前辈 万分感谢
>hibernate缓存中的数据汇同步更新吗? 不会,hibernate缓存不是分布式缓存,不会跨多台服务器的,其他持久层技术都是单台而言(EJB的实体Bean除外)。
你不但跨服务器,而且是跨异构平台,可能需要JMS这样异步系统来通知Hibernate所在的Java系统自己实现缓存更新了,比较复杂。
是啊 我也是这样认为的 所以没有采用hibernate 太危险了 如果只有我一个系统使用此数据库 C/C++系统使用另一个库, 用什么框架比较好啊?hibernate封装太死了 不知道ibatis怎么样?
你可以关掉hibernate缓存,又不是一定要用
>用什么框架比较好啊?hibernate封装太死了 不知道ibatis怎么样? hibernate的缓存是封装太死,无法透明访问,iBatis也是如此,我个人解决问题是使用JdonFramework,其缓存是通过一个类直接引用就可以,无论在表现层、业务层和持久层都能直接访问,操作灵活。