我正在使用weblogic和oracle編寫Web應用程序。 數據源通過JNDI進行配置,具有可以將DML轉換爲表但不能DDL的受限數據庫用戶。您可能會猜到,該用戶不是這些表的所有者,但他已被授予訪問權限。JPA - EclipseLink - 如何更改默認架構
比方說,他是GUEST_USER
應用程序使用JPA +的EclipseLink,並有大量已定義的實體。我不想在每個實體類中寫入屬性來更改模式。 我試過了一個SessionCustomizer和這段代碼。
public class MyCustomizer implements SessionCustomizer{
@Override
public void customize(Session session) throws Exception {
session.executeNonSelectingSQL("ALTER SESSION SET CURRENT_SCHEMA = OWNERS_SCHEMA");
}
}
,似乎有什麼東西uninitiallized,我得到一個空指針異常,我甚至不知道這是要改變架構的連接在使用之前的方式。 任何樣品或想法?
在此先感謝您的幫助!
+1這聽起來不錯 – 2010-07-11 11:24:45
這是好的,但仍然不動態,如果我需要更改同一應用程序的兩個版本的模式指向兩個diff數據庫實例,該怎麼辦? – 2014-05-28 19:39:00
此外,如果我使用'SET search_path TO ...'設置特定EntityManager的模式,將實體管理器傳遞給其他方法沒有任何影響。我想Wild野(在我的情況下)採用之前創建的公共默認模式池之一的連接 – Chris 2016-02-04 09:10:22