2016-07-06 7 views
4

"States"と "Children"という2つのEbeanモデルクラスが必要です。 「状態」オブジェクトは、ネストされた子オブジェクト(子のリスト)を含むことができる。ここでEbeanでネストされたオブジェクトを作成する最も簡単な方法は何ですか?

は、基本的な米国のクラスで、ここで

@Entity 
public class States extends Model { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private long id; 

    @Constraints.Required(message = "stateName cannot be null") 
    @Column(nullable = false) 
    private String statename; 

    @Column(nullable = true) 
    private String url; 

    @Column(nullable = true) 
    private String parent; 

    private List<Children> childrenList; 
} 

はEbeanを使用してStateオブジェクトを作成するために、これらのクラスに行われるべき最小限の変更がどのようなものがあり

@Entity 
public class Children extends Model { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private long id; 

    @Column(nullable = false) 
    private String statename; 

    @Column 
    private String child; 
} 

、基本的な子供のクラスでありますORM?私は、ポストを経て

Ebean Query by OneToMany Relationship

しかしそこに、多くの変更が提案されています。私は最小限の変更をしたいだけです。

答えて

5

私がしなければならなかったすべては「国」クラスに小さな変更を行って、だった、

@Entity 
public class States extends Model { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private long id; 

    @Constraints.Required(message = "stateName cannot be null") 
    @Column(nullable = false) 
    private String statename; 

    @Column(nullable = true) 
    private String url; 

    @Column(nullable = true) 
    private String parent; 

    @OneToMany(cascade = CascadeType.ALL) 
    private List<Children> childrenList; 
} 

だけ、私がここで行われている変更、私はすべての変更をしなかった

@OneToMany(cascade = CascadeType.ALL) 

です「子供」クラスへ遊びアプリを起動する前に、私は "application.conf" ファイルに

play.evolutions.enabled = true

を設定します。その後、 "evolution.default"フォルダに作成されたevolution SQLファイルを使用して、データベースのスキーマを調整しました。その後、 "States"オブジェクトはネストされた "Children"オブジェクトで正常に作成されました。

+1

技術的には、あなたは必要ありません... @GeneratedValue(strategy = GenerationType.IDENTITY)...私は個人的にこれを残して、Ebeanに与えられたDBプラットフォーム用の適切なアイデンティティ機構を選択させます。 –

+1

リファレンス:http://ebean-orm.github.io/docs/mapping/jpa/id –

関連する問題