2016-05-04 2 views
0

人とアプリケーションを含むシステムを作成しようとしています。すべての人が異なるアプリケーションを申請することができます。@OneToMany in Ebean

私は人物オブジェクトに@oneToManyRelationを適用しようとしています(dbから人を捜索するとき、彼らが適用したすべてのアプリケーションでリストを受け取りたいと思います)。私はアクティベーターとOracle DBを使用してい

@Entity 
@Table(name="t_person") 
public class person extends Model { 
    @id 
    @column(name="PERSON_ID") 
    private string ID; 

    more properties... 

    @OneToMany(targetEntity=application.class, mappedBy="SOLDIER_ID") 
    private ArrayList<application> ApplicationList; 

    public ArrayList<application> getApplicationList() { 
     return ApplicationList; 
    } 

    public void setApplicationList(ArrayList<application> applicationList) { 
     ApplicationList = applicationList; 
    } 
} 

@Entity 
@Table(name="T_APPLICATION") 
public class application extends Model { 
     @Id 
     @Column(name="APPLICATION_ID") 
     private int Id; 

     @ManyToOne 
     @JoinColumn(name="PERSON_ID") 
     private person Person; 
} 

は、ここに私のコードです。私がアプリケーションを取得すると、私はその人のオブジェクトをOKにしますが、人を取得すると、アプリケーションのリストはnullです。

どこが間違っていますか?

答えて

0

問題が見つかりました。 問題は、applicationListがArrayList <>で、List <>ではないということです。 私はリストにArrayListを変更するとすぐに。それは働いている。

0

アノテーションに逆属性の場合はmappedByを使用してください。ここで使用する列名ではなく、他のオブジェクトの属性の名前です。人に

:応用について

@OneToMany(mappedBy = "person", fetch = FetchType.EAGER) 
ArrayList<Application> applicationList; 

@ManyToOne 
Person person; 

あなたが該当する場合@JoinColumnを追加する必要があります。コメントの中で述べたように、fetch = FetchType.EAGER shoudl help too。

+0

お返事ありがとうございました。他のオブジェクトの属性に変更しましたが、まだ何も返していません。 – user2332718

+0

私の答えは、(削除された?)コメント – Preuk

+0

で指定されたとおりに更新しました。 – user2332718