我有一个企业Web应用程序,我们称它为AppOne,包含多个WAR和一个EJB,它使用JPA 2对一组实体执行CRUD操作。
现在我需要构建另一个企业Web应用程序,让它称之为AppTwo,它具有类似的结构(包含n WARS + EJB的EAR),需要共享AppOne的相同实体和数据库。
AppOne和AppTwo都将驻留在同一个应用程序服务器上。
我使用JBoss 7,Hibernate 4作为JPA 2提供程序,我的实体会自动扫描。
我的persistence.xml非常小:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="FoobarService" transaction-type="JTA">
<jta-data-source>java:jboss/datasources/foobarDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
<property name="hibernate.show_sql" value="true" />
<property name="format_sql" value="true" />
<property name="use_sql_comments" value="true" />
<!-- when using type="yes_no" for booleans, the line below allows booleans in HQL expressions: -->
<property name="hibernate.query.substitutions" value="true 'Y', false 'N'"/>
</properties>
</persistence-unit>
</persistence>
我在考虑克隆&#34; (阅读:复制和粘贴)包含实体和相关DAO部分的AppOne的EJB部分到AppTwo的EJB中,但由于我从未用JPA做过这些,我是想知道这是否可行/可行(或者考虑到AppOne已经部署在生产环境中,因此我不能将它的EJB用于共享),特别是如果:
答案 0 :(得分:1)
我从未尝试过,但我认为应该没有(大)问题。