我使用Hibernate开发一个J2EE应用程序,我想要有2个数据库,第一个数据库位于本地(在客户端计算机中),第二个数据库位于服务器中。
事实上,我想将 hibernate 配置为在全局不可访问时连接到本地数据库。
我的实际配置文件:
<hibernate-configuration >
<session-factory>
<property name= "hibernate.dialect"> org.hibernate.dialect.MySQLDialect</property>
<property name= "hibernate.connection.driver_class"> com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/serverBdd </property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
<property name="hibernate.connection.password"></property>
<mapping resource="hibernateConfiguration/Usine.hbm.xml"/>
<mapping resource="hibernateConfiguration/Produit.hbm.xml"/>
<mapping resource="hibernateConfiguration/Machine.hbm.xml"/>
<mapping resource="hibernateConfiguration/Operation.hbm.xml"/>
<mapping resource="hibernateConfiguration/Utilisateur.hbm.xml"/>
</session-factory>
</hibernate-configuration>
我该怎么做?如果我不能,我应该怎么做才能解决我的问题?
谢谢
最佳答案
当然,here您可以找到一个同时写入 2 个数据库的示例,但通过一个简单的 if 条件您可以决定使用哪个数据库:
首先,照常创建 2 个 hibernate.cfg.xml
文件,但名称不同
- serverconfig.cfg.xml
- localconfig.cfg.xml
之后,在您的 DAO
或任何获得 hibernate Session
的地方,只需检查服务器数据库是否可用,以及它是否不可用,请使用本地配置:
SessionFactory sessionFactory = new Configuration().configure("serverconfig.cfg.xml").buildSessionFactory();
if (sessionFactory == null)
sessionFactory = new Configuration().configure("localconfig.cfg.xml").buildSessionFactory();
此外,如果您使用 Hibernate 4 或更高版本 check this answer
关于java - 我可以有 2 个 Hibernate 配置 bdd 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31543587/