2016-05-04 26 views
0

Ich versuche, ein System zu schreiben, das Menschen und Anwendungen enthält. Jede Person kann sich für verschiedene Anwendungen bewerben.@ OneToMany Beziehung in Ebean

Ich versuche, eine @oneToManyRelation auf das Objekt Person anwenden (beim Retraven einer Person aus der db, möchte ich eine Liste mit jeder Anwendung erhalten, die sie beantragt haben).

Hier ist mein Code:

@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; 
} 

I Activator und eine Oracle-DB bin mit. Wenn ich eine Anwendung abrufe, bekomme ich das Objekt person in Ordnung, aber wenn ich eine Person retrahiere, ist die Anwendungsliste null.

Wohin gehe ich falsch?

Antwort

0

Ich habe das Problem gefunden. das Problem ist, dass ApplicationList ist eine ArrayList <> und nicht eine Liste <>. sobald ich die ArrayList in eine Liste ändere. es funktioniert.

0

Verwenden Sie mappedBy in Ihrer Annotation für umgekehrte Attribute; Es ist nicht der Spaltenname, den Sie hier verwenden sollten, sondern der Name des Attributs für ein anderes Objekt.

Auf Person:

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

On Anwendung:

@ManyToOne 
Person person; 

Sie müssen möglicherweise @JoinColumn ggf. hinzuzufügen. Wie in den Kommentaren gesagt, fetch = FetchType.EAGER Shoudl helfen auch.

+0

danke fot die antwort, ich änderte das Attribut auf anderen objekt und immer noch nichts, es ist null null – user2332718

+0

aktualisiert meine antwort mit eifrig holen wie in einem (gelöscht?) Kommentar – Preuk

+0

tut mir leid, aber es funktioniert immer noch nicht – user2332718