我正在玩Play! project,版本2.4.x for Java。
我在名为User的文件夹Entity
中创建了models
。这是 User.php :
package models;
import javax.persistence.Entity;
import javax.persistence.Id;
import com.avaje.ebean.Model;
@Entity
public class User extends Model{
@Id
public String Id;
protected String name;
protected String password;
protected String email;
/* -- getters and setters --*/
}
这是 application.conf :
的内容db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.username=sa
db.default.password=""
ebeans.default="models.*"
如您所见,这是一个非常标准的配置,我刚刚删除了与db选项相关的行,我使用ebeans作为ORM。
问题是Play不会生成evolutions文件。对于我已经研究过的其他项目,我已经看到,当我添加一个实体或者我在我创建的实体中修改一个字段时,框架理解我已经进行了编辑,因此生成了数据库并更新了配置
在我的项目中,文件夹conf / evolutions / default / x.sql不存在,所以我没有进化。因此,每当我尝试访问数据库表时,我都会得到一个空指针异常。
如果需要,可以使用 build.sbt 文件:
name := """WebInterface"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
evolutions
)
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
有人能帮助我吗?我想知道是否存在一个shell命令来强制生成sql文件,或者我是否必须编辑一些配置文件来自动生成这些文件。
感谢您的帮助。
答案 0 :(得分:1)
在SELECT *
FROM your_table
WHERE col LIKE REPLICATE('0', @number) + '%'
您已启用build.sbt
插件。那是正确的。但您还必须将其添加到PlayEbean
。
所以 project / plugins.sbt 应包含以下行:
project/plugins.sbt