5

Play 2.0 で複数のデータベースに接続しようとしています。私のapplication.confは次のようになります。

db.default.driver= com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/scg2?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8&autoreconnect=true"
db.default.user=root
db.default.jndiName=DefaultDS

db.scg2_shard1.driver= com.mysql.jdbc.Driver
db.scg2_shard1.url="jdbc:mysql://localhost:3306/scg2_shard1?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8&autoreconnect=true"
db.scg2_shard1.user=root
db.scg2_shard1.jndiName=ShardDS_1

そして、これがpersistence.xmlがどのように見えるかです

<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>DefaultDS</non-jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.show_sql" value="true"/>        
    </properties>
</persistence-unit>

<persistence-unit name="shardPersistenceUnit_1" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>ShardDS_1</non-jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.show_sql" value="true"/>        
    </properties>
</persistence-unit>

接続は適切に初期化されており、SELECT クエリを正しく実行できます。ただし、「scg2_shard1」接続では挿入または更新が機能していないようです (すべて「デフォルト」接続で機能します)。何が間違っているのか、この問題を修正するためにどこから探し始める必要があるのか​​ についての指針はありますか?

4

1 に答える 1

1

この行を application.conf に追加します

jpa.scg2_shard1=shardPersistenceUnit_1
于 2016-02-02T07:42:35.513 に答える