我可以有2个Hibernate配置bdd吗?

时间:2015-07-21 15:37:01

标签: java database hibernate

我使用 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>

我怎么能这样做?如果我不能怎么办才能解决我的问题呢?
感谢

1 个答案:

答案 0 :(得分:0)

当然,here你可以找到一个同时写入2个数据库的例子,但是如果条件简单,你可以决定使用哪个:

首先,像往常一样创建2个hibernate.cfg.xml文件,但名称不同

  • serverconfig.cfg.xml
  • localconfig.cfg.xml

之后,在您的DAO或您获得休眠的任何地方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