使用Play! Framework 2.0.4和EBean作爲持久層我試圖將數據庫「元」信息包裝到Java類中。Play Framework 2.0和EBean,包裝INFORMATION_SCHEMA
我application.conf類映射:
db.myData.url="jdbc:sqlserver://localhost:2301;databaseName=myData;"
ebean.myData="models.database.JavaTable"
然後我創建了一個類,如下所示:
package models.database;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import play.db.ebean.Model;
@Entity
@Table(name="tables",schema="INFORMATION_SCHEMA",catalog="myData")
public class JavaTable extends Model{
@Column(name="TABLE_NAME")
public String table_name;
public static Finder<String, JavaTable> find = new Finder<String, JavaTable>(
String.class, JavaTable.class
);
}
當我火了!發揮它告訴我,我需要運行在數據庫上創建表「myData.INFORMATION_SCHEMA.tables」的演變。然後我試圖通過單元測試來測試連接...
@Test
public void testGetTables(){
running(fakeApplication(), new Runnable() {
@Override
public void run() {
EbeanServer server = Ebean.getServer("myData");
List<SqlRow> rows = server.createSqlQuery("select * from myData.Information_Schema.Tables").findList();
for(SqlRow row: rows)
System.out.println("====>Row: " + row.toString());
}
});
}
單元測試正確執行並且表名被打印輸出成功。
編輯:每@nico_ekito我刪除了進化的配置文件中的插件,並開始越來越:
RuntimeException DataSource user is null
因此,研究了一下,我決定在配置文件,以禁止其它數據源和移動數據庫我試圖與「db.default」和「ebean.default」進行交流,模型開始工作。有沒有辦法告訴哪個數據源應該使用Play如何定義多個數據庫?通過「ebean.default =」 myData.JavaTable」似乎沒有工作環境中的類
我看到2.1RC2對evolutionplugin有一些修改。我會檢查一下。我可以確認禁用這個功能會阻止創建這些表。 – steveturner