我是Ebeans / Play 2.0.4的新手,我试图模拟以下内容:
One question has many answers
所以我的课程看起来像这样:
问题模型:
package models;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import play.db.ebean.Model;
@Entity
public class Question extends Model {
@OneToMany(cascade=CascadeType.ALL)
public List<Answer> answers = new ArrayList<Answer>();
}
答案型号:
package models;
import javax.persistence.Entity;
import javax.persistence.Id;
import play.db.ebean.Model;
@Entity
public class Answer extends Model {
@Id
public Integer id;
}
然而,这给了我以下错误:
java.lang.RuntimeException: No join columns
我做错了什么?进一步在生成的DDL中我需要“更新级联” - CascadeType.ALL是否正确类型?谢谢: - )
答案 0 :(得分:1)
将ID添加到问题实体:
@Entity
public class Question extends Model {
@Id
Integer id;
@OneToMany(cascade=CascadeType.ALL)
public List<Answer> answers = new ArrayList<Answer>();
}
在幕后,Ebean访问问题属性会生成如下查询:
select * from question q join answer a where q.id = 123
你的实体q.id缺失