Java 播放framework2.0和EBean,包装信息

Java 播放framework2.0和EBean,包装信息,java,playframework-2.0,ebean,Java,Playframework 2.0,Ebean,使用游戏!framework2.0.4和EBean作为持久层,我试图将数据库的“元”信息包装到Java类中 我将类映射到application.conf中: db.myData.url="jdbc:sqlserver://localhost:2301;databaseName=myData;" ebean.myData="models.database.JavaTable" 然后我创建了一个类,如下所示: package models.database; import javax.persis

使用游戏!framework2.0.4和EBean作为持久层,我试图将数据库的“元”信息包装到Java类中

我将类映射到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
);
}

因此,经过研究,我决定禁用配置文件中的其他数据源,并将我尝试与之通信的数据库移动到“db.default”和“ebean.default”,然后模型开始工作。如果Play定义了多个数据库,有没有办法告诉模型应该使用哪个数据源?通过“ebean.default=“myData.JavaTable”设置类似乎不起作用。

您应该尝试通过在application.conf文件中添加以下内容来禁用演进:

evolutionplugin=disabled

测试还可以,因为您没有启动真正的应用程序,而是使用了一个不使用evolutions插件的
fakeApplication()

有趣的是,我只成功地使用包级别的值定义了我的eBean服务器(因此,“myData.*”而不是“myData.JavaTable”)。要实现这一点,您可能必须将特定eBean服务器的所有类移动到它们自己的包中。

我最后也这样做了。不幸的是,尽管有单独的eBean服务器规范,evolutionplugin仍然在两个数据库中创建了Play2.1RC1中的表。我看到2.1RC2对evolutionplugin进行了一些修改。我会检查这个。我可以确认禁用它确实会阻止创建这些表。
RuntimeException DataSource user is null 
evolutionplugin=disabled