gpt4 book ai didi

java - 如何使用JPA(EclipseLink)设置应用程序名称?

转载 作者:行者123 更新时间:2023-12-01 05:56:07 25 4
gpt4 key购买 nike

大家好,我正在将 JPA 与 EclipseLink 和 oracle 作为数据库一起使用,我需要设置属性 v$session of jdbc4 它允许为应用程序设置一个标识名称以用于审计目的,但我有没有幸运地设置它......我一直在尝试通过 entitiyManager 按照此页面中的示例:http://wiki.eclipse.org/Configuring_a_EclipseLink_JPA_Application_(ELUG)它没有显示任何错误,但根本没有设置应用程序名称...当我在 oracle 中看到审核时,它没有使用我通过代码“Customers”设置的名称进行审核,而是使用 OS_program_name=JDBC Thin Client,这意味着代码中的属性未正确设置,我不知道问题出在哪里,我使用的代码如下:

    emProperties.put("v$session.program","Customers");
factory=Persistence.createEntityManagerFactory("clients",emProperties);
em=factory.createEntityManager(emProperties);
em.merge(clients);

有谁知道怎么做或者有什么想法......

谢谢。-

最佳答案

v$session.program 是 JDBC 连接属性,但 Persistence.createEntityManagerFactory 获取持久性单元属性。没有直接的方法可以将任意 JDBC 属性传递到实体管理器中。

但是,在 EclipseLink 中您可以使用 SessionCustomizer:

public class ProgramCustomizer extends SessionCustomizer {
@Override
public void customize(Session s) throws Exception {
s.getDatasourceLogin().setProperty("v$session.program", "Customers");
super.customize(s);
}
}

-

emProperties.put(PersistenceUnitProperties.SESSION_CUSTOMIZER, "ProgramCustomizer"); 

关于java - 如何使用JPA(EclipseLink)设置应用程序名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com