【问题标题】:Is it possible to find all available EntityManager properties?是否可以找到所有可用的 EntityManager 属性?
【发布时间】:2015-12-09 12:30:53
【问题描述】:

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

可以在 persitence.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 的所有可用属性?

【问题讨论】:

    标签: java api entitymanager


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2021-08-23
      • 2014-05-13
      • 2015-02-06
      • 2011-11-28
      • 1970-01-01
      相关资源
      最近更新 更多