JPA持久化.xml

发布于 2024-10-31 07:30:01 字数 130 浏览 0 评论 0原文

有没有办法使 persistence.xml 上的数据动态化? 我正在考虑在属性文件中添加数据库名称属性,然后创建表(如果不存在)。

这可能吗?

我正在使用 EclipseLink(JPA2.0) 和 MySQL。

Is there a way to make the data on the persistence.xml dynamic?
I was thinking of adding a database name property on my properties file, then the tables are created, if not existing.

Is this possible?

I'm using EclipseLink(JPA2.0) and MySQL.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

唯憾梦倾城 2024-11-07 07:30:01

如果您在独立环境中使用 JPA,则可以将其他属性传递给 Persistence.createEntityManagerFactory()

在应用程序服务器环境中,您可以使用从 JNDI 获取的数据源。

If you use JPA in standalone environment, you can pass additional properties to Persistence.createEntityManagerFactory().

In application server environments you can use datasource obtained from JNDI.

°如果伤别离去 2024-11-07 07:30:01

如果您使用的是 spring,则可以使用 spring property-placeholder-configurer 机制来执行此操作。只需扩展您的 EclipseLink 供应商适配器:

public class ExtendedJpaVendorAdapter extends XJpaVendorAdapter {

    private Map<String, Object> vendorProperties;

    @Override
    public Map<String, Object> getJpaPropertyMap() {
        Map<String, Object> properties = super.getJpaPropertyMap();
        properties.putAll(vendorProperties);
        return properties;
    }

    public Map<String, Object> getVendorProperties() {
        return vendorProperties;
    }

    public void setVendorProperties(Map<String, Object> vendorProperties) {
        this.vendorProperties = vendorProperties;
    }

}

然后您可以在 spring xml 文件中配置这些。

If you are using spring, you can use the spring property-placeholder-configurer mechanism to do so. Just extend your EclipseLink vendor adapter:

public class ExtendedJpaVendorAdapter extends XJpaVendorAdapter {

    private Map<String, Object> vendorProperties;

    @Override
    public Map<String, Object> getJpaPropertyMap() {
        Map<String, Object> properties = super.getJpaPropertyMap();
        properties.putAll(vendorProperties);
        return properties;
    }

    public Map<String, Object> getVendorProperties() {
        return vendorProperties;
    }

    public void setVendorProperties(Map<String, Object> vendorProperties) {
        this.vendorProperties = vendorProperties;
    }

}

And then you can configure these in the spring xml file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文