没有连接列

时间:2012-11-11 18:46:07

标签: playframework persistence ebean

我是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是否正确类型?谢谢: - )

1 个答案:

答案 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缺失