2012-06-06 67 views
4

我試圖連接到Play 2.0中的多個數據庫。這裏是我的application.conf看起來像:玩! Framework 2.0連接到多個數據庫

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」連接(所有工作都在「默認」連接上)。任何指示什麼即時通訊做錯了,我應該從哪裏開始尋找糾正這個問題?

+0

順便說一句,我想補充:我堅持使用JPA.em()對象的持久(實體)(默認)和JPA.em( 「scg2_shard1」。 ).persist(實體)(用於分片) – user1439306

+0

您是否收到錯誤或什麼?你確定數據庫用戶有正確的權限嗎? –

+1

數據庫用戶具有正確的權限。但是,經過進一步調查,我找出了問題所在。 – user1439306

回答

1

這一行添加到您的application.conf

jpa.scg2_shard1=shardPersistenceUnit_1