比方說,我有以下persistence.xml與連接url,用戶&密碼全部硬編碼。動態設置JPA持久性屬性
以下是針對Hibernate 3.2的。對於Hibernate 3.5 ++,我們必須將「hibernate.connection」更改爲「javax.persistence」。但是不管文字是「hibernate.connection」還是「javax.persistence」,我都會問這個問題。
<persistence-unit name="obamacare" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
<property name="hibernate.connection.url" value="blah blah blah"/>
<property name="hibernate.connection.username" value="careuser"/>
<property name="hibernate.connection.password" value="carepass"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
然而,我們需要動態設置URL,用戶&密碼。有一個提議的認證服務器提供URL,用戶密碼爲&。因此,我們不需要單獨配置使用某種形式的jdbc,hibernate或JPA的大量webapps。除了不希望在可見文本文件上存儲/管理密碼的安全問題之外。
就JPA而言,如何動態設置這些JPA屬性?我尋求兩套答案:
一個解決方案,是獨立的JPA廠商(TopLink的,的EclipseLink,休眠等) - 是否有任何JPA的功能,將讓我動態設置這三個屬性?
如果我被允許完全依賴Hibernate,除了可能的JPA唯一途徑之外,是否有辦法在不涉及Spring框架的情況下實現這一點(這看起來像是一個巨大的怪物,觸手遍及整個地方)?
,如果你也想在兩分錢扔我就心花怒放/ quids在JNDI,以及如何我可以用它來代替的persistence.xml屬性的功能/盧比。但是,這不是問題的優先事項。
大部分想要完成的事情都可以使用Spring輕鬆完成。我正在使用Spring幾周,我根本不後悔。春天似乎是一項很大的工作,但實際上很簡單。 – siebz0r 2012-07-28 13:39:23