我們可以在屬性文件中設置JTA數據源名稱,它將在應用程序的persistance.xml中讀取。我們可以在屬性文件中設置JTA數據源名稱
-1
A
回答
1
還有另一種更簡單的可能性,讓您的數據源名稱和其他應用程序參數可配置。
我們使用maven配置文件和資源過濾。您需要在您的persistence.xml
中定義與您的.properties
文件中的屬性名稱相匹配的佔位符或.pom
。
在構建過程中,您指定了配置文件,maven將用您的屬性替換佔位符。
我們已經使用這種技術在不同的部署環境之間切換數據源。
編輯:
首先,定義資源篩選配置文件:
<profiles>
<profile>
<id>set_datasource</id>
<build>
<!-- enable resource filter to set the datasource name --
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
...
爲每個數據源配置文件:
<profile>
<id>db_test</id>
<properties>
<database.name>test_ds</database.name>
</properties>
</profile>
在您的持久性單元,準備佔位符
<persistence-unit name="my_db">
<jta-data-source>java:jboss/datasources/${datasource.name}</jta-data-source>
</persistence-unit>
與這兩個配置文件呼叫maven:
mvn test -Pdatasource,db_test
1
通過使用Persistence.createEntityManagerFactory(persistenceUnitName, properties)
動態生成EntityManagerFactory
,並使用properties
映射來指定數據源名稱,可以覆蓋persistence.xml文件中的值。但是,現在您永遠不可以在您的應用程序的任何位置使用@PersistenceContext
注入EntityManager
或使用@PersistenceUnit
注入EntityManagerFactory
,並且您必須手動管理您的EntityManager事務。不要這樣做。這是一個可怕的想法。
+1
感謝里恩它會幫助。 –
相關問題
- 1. 我可以通過屬性名稱設置屬性嗎?
- 2. 在資源文件中設置屬性
- 3. 我們可以在類別中設置只讀屬性...?
- 4. 我可以在iOS中設置任意屬性文件嗎?
- 5. 我們可以在驗證時設置源對象的屬性嗎?
- 6. 我們可以給需要的功能名稱屬性
- 7. 我可以根據其他屬性設置類「屬性」嗎?
- 8. 難道我們不能設置一些我們可以在XML中設置的樣式屬性嗎?
- 9. 我們可以設置一個類的對象的屬性嗎?
- 10. 我們可以使用Castle Windsors Fluent API設置Convertible屬性
- 11. 我們可以動態設置「description」元屬性的值嗎?
- 12. Xpages設置數據源屬性
- 13. 我在哪裏可以加我的屬性在Struts2文件名
- 14. 在XAML中設置我的自定義屬性名稱
- 15. Xamarin iOS:我們可以在XIB文件中設置stoardboardid嗎?
- 16. 我可以設置Textview的屬性嗎?
- 17. 我可以設置約定AutoMapper屬性
- 18. 是否可以在applicationcontext中設置資源屬性值?
- 19. 我們可以從droool的屬性中讀取數據
- 20. 如何在電子郵件中設置「名稱」屬性
- 21. 我們可以使用屬性文件中的表達式獲取屬性
- 22. 我在哪裏可以設置Eclipse C++函數名稱樣式?
- 23. 設置屬性/數據在VueJs組件
- 24. 上傳前設置文件路徑和名稱屬性
- 25. 我可以在Ajax中設置返回數據的類或Id屬性嗎?
- 26. 配置數據源屬性
- 27. 我們可以在maven中使用文件夾名稱作爲工件ID嗎?
- 28. 我可以使用grunt在json文件中設置屬性值嗎?
- 29. 設置名稱屬性動態
- 30. 用'變量'名稱設置屬性
可以請你添加一些示例代碼,它會有很大的幫助。 –
@Sai請參閱編輯,希望它有幫助。 – kostja