0

我一直在尝试使用 Hibernate 一段时间。我喜欢hibernate,它有注解映射能力(比如@Entity、@Column)

但我不喜欢它缓存的想法(如何禁用休眠缓存说它也不能被禁用)。

另外,我完全不喜欢它的“提交与刷新”的想法,它在插入/删除/更新数据库中的某些数据时不会直接将 SQL 运行到数据库。

那么,正如我的标题,有没有像 Hibernate 这样带有注释但没有缓存并且直接执行 SQL 的框架?如果这样的框架可以在 Spring 中使用,那就太好了。

或者,实际上,Hibernate 可以只禁用缓存,或者只是有一些配置可以为每个插入/删除/更新执行直接 SQL 吗?

4

3 回答 3

2

这些功能默认开启,因为您通常需要它们(即使您最初没有意识到)。

但是,如果您真的想禁用缓存并立即刷新所有内容:

  • 使用sessionFactory.openStatelessSession()- 此会话不在一级缓存中存储任何内容(二级缓存默认关闭)。请注意,您不能使用此会话操作集合映射。
  • 用于session.setFlushMode(..)将其设置为在非常查询之前自动刷新(相当不鼓励)。

请注意,刷新模式仅适用于有状态会话 - 无状态会话会立即刷新。

于 2012-03-06T20:42:43.443 回答
1

Hibernate 是一个很棒的框架,但对于更轻量级的实现,我倾向于使用 Spring JDBC:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html

于 2012-03-06T20:44:02.713 回答
1

您可能正在寻找更直接的MyBatis 。有关基于注释的示例,请参见此处,尽管还有其他示例。您也可以只使用纯 JDBC,或者如果您使用 Spring,则可以通过 Spring。

我不明白“不喜欢缓存”的事情。

于 2012-03-06T20:45:26.597 回答