我已经找了这个答案,但一直没能找到任何这样的问题,请问这个非常贴心的社区!用于dev/qa/stage/production的JPA多个持久性单元
- 我有一个独立的Java应用程序,可以在许多环境中部署:dev,qa,stage,production。因此,每个环境都有其自己的数据源/数据库,并且有属性文件可以管理不同的属性,具体取决于应用程序从哪个环境运行。因此,在我的persistence.xml中,我为dev定义了一个持久性单元。在同一个文件中,我也想定义其他环境的持久性单元。当这样做时,Eclipse(Indigo - latest)抱怨如下:“定义了多个持久化单元 - 只有第一个持久化单元将被识别”。我是假设,我所做的是合法的,这是一个Eclipse问题..任何人都可以确认吗?另外,这是什么最佳实践将决定给我目前的设置?
- 我假设任何标有@Entity标注的实体bean都会自动获取,而不必在persistence.xml文件中显式定义它,如下所示:
<class>com.mycompany.model.MyEntityBean</class>
。如果我省略了文件中实体类的显式包含,实体bean(尽管注释)将引发错误:“类”com.mycompany.model.MyEntityBean“已映射,但未包含在任何持久性单元中”我有什么我认为错误的? - 我的最后一个问题是关于数据库凭证:最好的做法是以纯文本形式将我的数据库凭证放入persistence.xml文件中?有没有比这更安全的替代方案?
谢谢社区!
p.s - 我使用EclipseLink作为JPA供应商而不是它应该重要?
这里是
<?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="Development">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
<persistence-unit name="QA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.mycompany.model.MyEntityBean</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" />
<property name="javax.persistence.jdbc.password" value="xxxxxx" />
<property name="javax.persistence.jdbc.user" value="xxxxxxxx" />
</properties>
</persistence-unit>
</persistence>
你可以添加你的persistence.xml内容,它可以帮助大家更好地理解。 –
嗨Nayan,我已经添加了我的persistence.xml的剪辑谢谢! – ustad