gpt4 book ai didi

java - 是否可以找到所有可用的 EntityManager 属性?

转载 作者:行者123 更新时间:2023-12-01 10:45:47 26 4
gpt4 key购买 nike

我需要使用具有不同属性的多个持久性单元(在我的例子中是 MySQL 和 Oracle 数据库)。在 persistence.xml 中,我定义了两个不同的“持久性单元”,并仅列出其中的实体类。

可以在 persistence.xml 中设置属性

<properties> <property name="..." value="..." /> ...

我在创建 EntityManager 之前在 java 类中执行此操作,因为我必须使用不同的属性(我之前读过):

        EntityManagerFactory factory;
...
HashMap<String, String> dbProperties = new HashMap<String, String>();
dbProperties.put("javax.persistence.jdbc.driver", driver);
dbProperties.put("javax.persistence.jdbc.url", url);
dbProperties.put("javax.persistence.jdbc.user", user);
dbProperties.put("javax.persistence.jdbc.password", password);
dbProperties.put("eclipselink.ddl-generation", "none");
dbProperties.put("eclipselink.ddl-generation.output-mode", "database");

factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME, dbProperties);
EntityManager em = factory.createEntityManager();
...

对于 Oracle,我需要动态设置架构(如果可能),而不是在每个实体类的 @Table 注释中硬编码。我想我还需要设置其他属性。所以我的问题是:有没有办法找到 EntityManager 的所有可用属性?

最佳答案

您可以在相应的 JSR 上找到标准 JPA 属性。对于 JPA 2.1 (JSR 338),您可以在文档的第 8.2.1.9 章中找到它们。您可以下载文档there .

对于特定于实现的属性,您可以在您使用的实现的文档中找到它们。对于 EclipseLink,这似乎是您正在使用的实现,您会找到它们 there .

关于java - 是否可以找到所有可用的 EntityManager 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34178886/

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