有没有办法直接从Ebean中的SQL文件(xx.sql)读取SQL?
例如,如果我有一个包含多个SQL语句的SQL文件(已经在文件中写入的值),有没有办法通过使用Ebean来执行这个SQL文件?
答案 0 :(得分:1)
您至少有两个开箱即用的选项:
播放evolutions旨在更新数据库架构,因此您也可以使用它们来插入初始数据(如果它们是平面的,并且不包含与尚未创建的对象的关系),示例演变对于MySQL:
# --- !Ups
INSERT INTO your_table (some_field) VALUES ('New value');
# --- !Downs
DELETE FROM your_table WHERE some_field = 'New value`;
使用Global对象并使用常见的Ebean方式插入初始数据:
public void onStart(Application app) {
if (YourModel.find.findRowCount() == 0) {
YourModel newItem = new YourModel();
newItem.someField = "New value";
newItem.save();
YourModel newItem2 = new YourModel();
// etc....
}
}
对于第二种方法,您可以检查如何使用Global object of Zentask sample读取保存初始数据的YAML文件的方式(带有示例的文件放在conf
目录中)
修改强>
仔细查看initial-data.yml,任务和项目之间也存在关联,因此它们具有固定的id
值。所以你需要在你的yaml中做同样的事情:
projects:
- !!models.Project
id: 1
name: Play 2.0
folder: Play framework
tasks:
- !!models.Task
title: Fix the documentation
done: false
folder: Todo
project: !!models.Project
id: 1