我需要設置2個獨立的數據庫。一個用於Test類,另一個用於TestTwo類,但我不知道如何配置application.conf文件。如何在Play Framework中設置2個MySQL數據庫?
application.conf(第1部分):
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/dbone?characterEncoding=UTF-8"
db.dbtwo.driver=com.mysql.jdbc.Driver
db.dbtwo.url="jdbc:mysql://localhost/dbtwo?characterEncoding=UTF-8"
失敗的嘗試1:這兩個類得到保存到數據庫1(dbone):
application.conf(部分2):
ebean.default="*"
ebean.dbtwo="models.TestTwo"
失敗嘗試2:嘗試保存某些內容時出現錯誤NG:
[PersistenceException: The type [class models.TestTwo] is not a registered entity? If you don't explicitly list the entity classes to use Ebean will search for them in the classpath. If the entity is in a Jar check the ebean.search.jars property in ebean.properties file or check ServerConfig.addJar().]
application.conf(部分2):
ebean.default="models.Test"
ebean.dbtwo="models.TestTwo"
我如何設定讓測試對象被保存到dbone和TestTwo對象dbtwo?
編輯:TestTwo類的要求(沒有什麼特別的,我沒有手動比application.conf文件分配Ebean服務器,其他):
package models;
import javax.persistence.*;
import play.db.ebean.*;
import play.data.validation.Constraints.Required;
@Entity
public class TestTwo extends Model{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long id;
@Required
public String testString;
public static Model.Finder<Long, TestTwo> find = new Model.Finder<Long, TestTwo>(Long.class, TestTwo.class);
public static TestTwo create (String testString){
TestTwo test = new TestTwo();
test.testString = testString;
test.save();
return test;
}
}
請再展示一些代碼,特別是用於保存實體的代碼。 –
配置看起來不錯,它可能是你的代碼中的東西。我不完全確定你是否可以爲每個類指定數據庫,我只用它作爲包。你可能想試試這個。 – nylund
增加了TestTwo類。 –