Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring hibernate jpa和jboss-将对象保存到第二个数据库_Java_Database_Spring_Hibernate_Jboss - Fatal编程技术网

Java Spring hibernate jpa和jboss-将对象保存到第二个数据库

Java Spring hibernate jpa和jboss-将对象保存到第二个数据库,java,database,spring,hibernate,jboss,Java,Database,Spring,Hibernate,Jboss,注:虽然最初类似,但这不是 亲爱的Stackoverflow: 我有一个SpringJPA和hibernate应用程序,运行在jboss-4.2.1.GA上,并使用单个数据库 我现在有了第二个SpringHibernate项目,它与上面描述的项目捆绑在同一个ear文件中,但它需要使用第二个数据库。第二个hibernate/spring项目是使用database.properties和hibernate.cfg.xml文件设置的 这两个数据库的详细信息存储在jboss oracle-ds.xml文

注:虽然最初类似,但这不是

亲爱的Stackoverflow:

我有一个SpringJPA和hibernate应用程序,运行在jboss-4.2.1.GA上,并使用单个数据库

我现在有了第二个SpringHibernate项目,它与上面描述的项目捆绑在同一个ear文件中,但它需要使用第二个数据库。第二个hibernate/spring项目是使用database.properties和hibernate.cfg.xml文件设置的

这两个数据库的详细信息存储在jboss oracle-ds.xml文件中:

<datasources>
    <local-tx-datasource>
        <jndi-name>DefaultDS</jndi-name>
         ...
     </local-tx-datasource>
     <local-tx-datasource>
        <jndi-name>SecondDS</jndi-name>
         ...
     </local-tx-datasource>
</datasources>
如果很容易获得一个只对准备好的语句有用的连接,那么我如何获得sessionFactory呢?有类似的方法吗

我看到的所有示例都涉及database.properties,而不是jboss ds.xml文件

<persistence-unit name="sample">
  <jta-data-source>java:/DefaultDS</jta-data-source>
  ...
</persistence-unit>

提前感谢

有几种解决方案,具体取决于如何将数据源绑定到presistance上下文、Spring方式、JPA方式或Hibernate方式

弹簧

要将spring/hibernate应用程序链接到JNDI数据源,需要使用JndiObjectFactoryBean

<bean id="serverDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jdbc/blah"/>
  <property name="proxyInterface" value="javax.sql.DataSource"></property>
</bean>
休眠

对于hibernate.cfg.xml文件,可以使用此属性指定JNDI数据源

<property name="connection.datasource">java:/comp/env/jdbc/MyDB</property>
java:/comp/env/jdbc/MyDB
应删除database.property以确保使用jndi数据源


这些只是示例,最终结果将取决于您如何制作管道。

谢谢Kazaag,我已经了解了如何访问主数据库以及采用JPA方法。因此,我将采取同样的办法。
    @PersistenceContext(unitName="sample")  
<property name="connection.datasource">java:/comp/env/jdbc/MyDB</property>