2

私は 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 はこれに適したタイプですか? ありがとう :-)

4

1 に答える 1

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 がありません

于 2013-03-05T18:38:14.997 に答える