2016-01-22 35 views
3

给出一些上下文 - 我将我的数据库迁移到其他不支持Hibernate查询的平台上。由于有很多地方使用Hibernate概念,因此我计划在DAO层更改load(),save()delete()函数以处理新数据库,而不是在服务层进行更改。但是,一个问题是,当一个事务被提交时,Hibernate会自行保存。我怎样才能避免这种情况?如何防止在事务提交时保存到Hibernate数据库?

当在Hibernate中提交事务时,会话中的持久实体被保存到数据库中。由于我使用Spring的@Transactional注释,因此我无法控制这一点。我的要求是我想阻止Hibernate将对象保存到数据库中,并使用@Transactional注释在类中使用DAO自己保存对象。另外,我阅读了关于Hibernate的无状态会话,所以使用它们是个好主意,因为我没有保存任何会话?我阅读了这篇文章,但找不到具体的解决方案。一些Hibernate + Spring专家可以在这方面提供帮助吗?

+0

其他什么平台?你在使用什么持久性API? –

+0

矩阵数据库这是nosql,我现在使用JDBC – Anonymous

+0

我正在迁移到Matrix数据库这是NoSql和截至目前我正在使用JDBC – Anonymous

回答

0

如果数据库不支持Hibernate可能是最好的解决方案是抛出休眠和只使用spring + jdbc模板,所以你有完全控制它。

+0

有很多地方使用它,此外它本身提供了事务和会话的功能,所以只是想图出一些办法不行。 – Anonymous

2

你需要切换到手动冲洗:

sessionFactory.getCurrentSession().setFlushMode(FlushMode.MANUAL); 
相关问题