2

pom.xml私が持っている(http://struberg.wordpress.com/2012/05/10/using-jpa-in-real-projects-part-1/から取得

<properties>
    <openjpa.sql.action>refresh</openjpa.sql.action>
    <database.driver.name>org.postgresql.Driver</database.driver.name>
    <database.connection.url>jdbc:postgresql://myURL</database.connection.url>
    <database.user>user</database.user>
    <database.password>password</database.password>
</properties>

<plugin>
    <groupId>org.apache.openjpa</groupId>
    <artifactId>openjpa-maven-plugin</artifactId>
    <version>${openjpa-version}</version>
    <configuration>
        <includes>**/entity/*.class</includes>
        <excludes>**/entity/Q*.class</excludes>
        <addDefaultConstructor>true</addDefaultConstructor>
        <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
        <sqlAction>${openjpa.sql.action}</sqlAction>
        <connectionDriverName>${database.driver.name}</connectionDriverName>
            <connectionProperties>
                jdbcUrl=${database.connection.url},
                user=${database.user},
                password=${database.password},
            </connectionProperties>
        </configuration>
        <executions>
            <execution>
                <id>enhancer</id>
                <phase>process-classes</phase>
                <goals>
                    <goal>enhance</goal>
                    <goal>sql</goal>
                </goals>
            </execution>
        </executions>
        <dependencies>
            <dependency>
                <groupId>org.apache.openjpa</groupId>
                <artifactId>openjpa-all</artifactId>
                <version>${openjpa-version}</version>
            </dependency>
        </dependencies>
    </plugin>

なんらかの理由で、URLが正しく渡されず、

目標org.apache.openjpa:openjpa-maven-plugin:2.2.0:sqlの実行エンハンサーが失敗しました:ドライバークラス「org.postgresql.Driver」およびURL「null」の接続を取得できませんでした。無効なURLを指定した可能性があります。(org.apache.openjpa:openjpa-maven-plugin:2.2.0:sql:enhancer:process-classes)

、などに置き換えてみましたjdbcUrl。何も役に立ちません。ただし、URLを入力することはできますが、これ機能します。connectionPropertiesurlURLpersistence.xml

<property name="javax.persistence.jdbc.url"
    value="jdbc:postgresql://myURL" />

ドライバー、ユーザー、およびパスワードは、Mavenプロパティから取得されます。ただし、このURLはDDLの生成にのみ使用されるため(データソースは実行時に別の方法で作成されます)、pom.xml汚染せずにURLを含めることをお勧めしpersistence.xmlます。これを行う方法はありますか?

4

1 に答える 1

2

BasicDataSource次のような接続を取得するためにcommons-dbcp を使用しました。

<connectionDriverName>org.apache.commons.dbcp.BasicDataSource</connectionDriverName>
<connectionProperties>
    driverClassName=${database.driver.name},
    url=${database.connection.url},
    username=${database.user},
    password=${database.password},
</connectionProperties>
于 2012-06-19T05:43:54.507 に答える