我想在我的 Web 应用程序中使用“Oracle 代理身份验证” 。我使用 JPA 框架进行持久性和 eclipselink 作为 JPA 提供程序。
我正在使用的代码是
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("eclipselink.oracle.proxy-type", oracle.jdbc.OracleConnection.PROXYTYPE_USER_NAME);
properties.put(oracle.jdbc.OracleConnection.PROXY_USER_NAME, "egonzalez");
properties.put("eclipselink.jdbc.exclusive-connection.mode", "Always");
properties.put("eclipselink.jdbc.exclusive-connection.is-lazy", "false");
em = emf.createEntityManager(properties);
当我在不使用数据源的情况下定义持久性单元时,它工作正常。
<properties>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@10.12.54.210:1523:dsr" />
<property name="javax.persistence.jdbc.user" value="unificado" />
<property name="javax.persistence.jdbc.password" value="asdas" />
<property name="eclipselink.cache.shared.default" value="false"/>
</properties>
但是当我通过数据源定义持久单元时,它不起作用。
<properties>
<property name="eclipselink.session.customizer" value="com.ieci.mugeju.middleware.model.util.JPAEclipseLinkSessionCustomizer"/>
<property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.oracle.OraclePlatform"/>
<property name="javax.persistence.nonJtaDataSource" value="java:/OracleDS"/>
<property name="eclipselink.logging.level" value="FINEST"/>
<property name="eclipselink.cache.shared.default" value="false"/>
</properties>
我正在使用 JBoss 4.2.3。