我一直在尝试使用Hibernate。我喜欢hibernate,它具有注释映射功能(例如@Entity,@ Column)
但是我不喜欢缓存的想法(How to disable hibernate caching说它也不能被禁用)。
另外,我完全不喜欢它的'commits vs flush'这个想法,当插入/删除/更新数据库中的某些数据时,它不能直接将SQL运行到数据库。
所以,作为我的标题,是否有任何框架,如带有注释的Hibernate,但没有缓存并直接执行SQL?如果这样的框架可以在Spring中使用,那将是件好事。
或者,实际上,Hibernate可以只禁用缓存,或者只是有一些配置可以为每次插入/删除/更新执行直接SQL吗?
答案 0 :(得分:2)
默认情况下,这些功能处于启用状态,因为您通常需要它们(即使您最初没有意识到这一点)。
但是如果你真的想立即禁用缓存并刷新所有内容:
sessionFactory.openStatelessSession()
- 此会话不会在第1级缓存中存储任何内容(默认情况下,第2级缓存已关闭)。请注意,您无法使用此会话操作集合映射。session.setFlushMode(..)
将其设置为在非常查询之前自动刷新(相当不鼓励)。 请注意,刷新模式仅适用于有状态会话 - 无状态会话立即刷新。
答案 1 :(得分:1)
Hibernate是一个很棒的框架,但对于更轻量级的实现,我倾向于使用Spring JDBC:
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html
答案 2 :(得分:1)