2

Cloud-SQLJPAチュートリアルを読みました。

「接続」をクリックすると、クラウドとローカルのmysqlデータベースへの接続が機能します。しかし、私のEntityManagerFactoryはpersistence.xmlを読み取ることができません。

ローカルのmysqlデータベースに接続するときに、persistence.xmlがどのように表示されるかはわかりません。

チュートリアルでは、persistence.xmlのように聞こえます-ファイルは自動的に生成され、クラスを追加するだけで済みます。あれは正しいですか?はいの場合、自動生成をトリガーするにはどうすればよいですか?

そうでなければ、それはどのように見えるでしょうか?

4

1 に答える 1

3

私はそれを働かせました。これらの手順は、ローカルの mysql db に接続できるように修正するのに役立ちました。

私のpersistence.xmlを以下に示します。

コメント:

  • 実験的に com.mysql.Driver をドライバーとして設定しないでください。動作しません。

  • Eclipselink の MySQL プロパティを設定する

これが誰かに役立つことを願っています;)

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="transactions-optional" transaction-type="RESOURCE_LOCAL">
        <class>com.MyClass</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.google.appengine.api.rdbms.AppEngineDriver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:google:rdbms://myapp:instance1/test"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="eclipselink.target-database" value="MySQL"/>
            <property name="eclipselink.platform.class.name" value="org.eclipse.persistence.platform.database.MySQLPlatform" />
        </properties>
    </persistence-unit>
</persistence>

私の EntityManagerFactory は次のようになります。

package de.compareyourrace.system.server;

/*
 * Copyright 2010 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

/**
 * Factory for creating EntityManager.
 */
public final class EMF {
    private static final EntityManagerFactory emfInstance =
        Persistence.createEntityManagerFactory("transactions-optional");

    public static EntityManagerFactory get() {
        return emfInstance;
    }

    private EMF() {
      // nothing 
    }
}
于 2012-08-14T16:00:29.717 に答える