我想在我的应用程序中同时使用 Spring-Hibernate 和 JDBC。
Hibernate 应该从一个线程执行所有更新和写入操作,而其他线程应该能够从数据库中读取数据,而无需太多同步工作。
那些使用 JDBC 的线程是否会提供正确的结果(如果它们在调用 persist()
或 merge()
后不久从数据库中读取数据),或者是否会发生这种情况,即 hibernate
没有刷新任何更新,因此其他线程返回错误的数据库条目?
最佳答案
“错误”取决于您为连接池设置的隔离级别。
我认为,如果 Hibernate 和 Spring 共享相同的连接池,并且您将所有连接的隔离级别设置为 SERIALIZABLE,那么它就可以工作。
长时间运行的事务将成为问题。如果所有写入操作都很快,则不会阻塞。如果您不快速提交和刷新更新,则读取操作将不得不阻塞并等待或允许“脏读”。
关于java - 从不同线程一起使用 Hibernate 和 JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20950581/