【问题标题】:Issue with Multiple/Distributed hibernate SessionFactory instances with MySQLMySQL 的多个/分布式休眠 SessionFactory 实例的问题
【发布时间】:2012-09-18 19:51:44
【问题描述】:
我在使用多个/分布式 Hibernate SessionFactories(即 Hibernate SessionFactory 的多个实例)访问单个数据库实例时遇到问题。
如果我使用一个会话工厂来执行插入操作并创建新的 SessionFactory 以从数据库中检索数据而不关闭前一个 SessionFactory,那么我会得到“null”。
我也尝试过使用多个二级缓存平台,但都没有解决问题。
如果有人找到任何解决方案,请回复。
我正在使用 MySql 数据库,我在安装时选择的数据库引擎是 Innodb。
谢谢。
【问题讨论】:
标签:
mysql
hibernate
distributed-caching
sessionfactory
database-engine
【解决方案1】:
在解决了这个问题并尝试了所有可以用 hibernate 完成的事情之后,我没有找到解决这个问题的方法。
然后在我尝试将数据库引擎从早期的 Innodb 更改为 MISAM 之后,这解决了数据无法获取和抛出 NullPointerException 的问题。
我想知道是否有人能说出为什么 MISAM 工作而 Innodb 在分布式操作中无法工作以进行插入和检索?
【解决方案2】:
MyISAM 默认使 autocommi=true。
MYISAM 是一个相当古老的引擎。建议使用 INNODb 存储引擎并在 hibernate 属性文件中将 autocommit 设为 true。