JPA persistence.xml - PullRequest
       33

JPA persistence.xml

4 голосов
/ 11 апреля 2011

Есть ли способ сделать данные в файле persistence.xml динамическими?Я думал о добавлении свойства имени базы данных в мой файл свойств, затем создаются таблицы, если они не существуют.

Возможно ли это?

Я использую EclipseLink (JPA2.0)и MySQL.

Ответы [ 2 ]

3 голосов
/ 11 апреля 2011

Если вы используете JPA в автономной среде, вы можете передать дополнительные свойства Persistence.createEntityManagerFactory().

В средах сервера приложений вы можете использовать источник данных, полученный из JNDI.

0 голосов
/ 11 апреля 2011

Если вы используете пружину, вы можете использовать механизм пружины 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;
    }

}

И затем вы можете настроить их в весеннем XML-файле.

...