有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有没有像Hibernate这样的框架,但是没有缓存,并且直接执行SQL?

我尝试使用Hibernate已经有一段时间了。我喜欢hibernate,因为它具有注释映射功能(例如@Entity、@Column)

但我不喜欢它缓存的想法(How to disable hibernate caching说它也不能被禁用)

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

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

或者,实际上,Hibernate可以只禁用缓存,或者只进行一些配置,以便对每次插入/删除/更新都执行DirectSQL


共 (3) 个答案

  1. # 1 楼答案

    默认情况下,这些功能处于启用状态,因为您通常需要它们(即使您最初没有意识到)

    但是,如果确实要禁用缓存并立即刷新所有内容:

    • 使用sessionFactory.openStatelessSession()-此会话不会在第一级缓存中存储任何内容(默认情况下,第二级缓存处于关闭状态)。请注意,您不能在此会话中操作集合映射
    • 使用session.setFlushMode(..)将其设置为在每次查询之前自动刷新(不鼓励这样做)

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

  2. # 2 楼答案

    您可能正在寻找MyBatis,这更直接一些。对于基于注释的示例,see here尽管还有其他示例。您也可以只使用纯JDBC,如果您使用的是Spring,也可以通过Spring

    我不明白“不喜欢缓存”这件事